/**
 * AIHub Theme — design system (blueprint §10). v1.1 modern refresh.
 * Premium dark SaaS look. Tokens mirror the blueprint palette; block styles in
 * aihub-blocks reuse the same custom properties.
 */
:root {
	/* "Midnight lounge" palette — deep violet-black night surfaces with one
	   luminous accent. Dark, intimate and premium: the visual language of the
	   adult niche, executed with editorial restraint (crisp hairlines, serif
	   display type, no muddy greys). */
	--aihub-bg: #121117;         /* neutral near-black (publishkit-style) */
	--aihub-bg-2: #17161D;       /* raised canvas */
	--aihub-surface: #17161D;    /* cards */
	--aihub-surface-2: #211F29;  /* nested / tracks */
	--aihub-border: #2A2833;     /* subtle zinc hairline */
	--aihub-border-soft: #232128;
	--aihub-text: #F4F4F5;       /* zinc-100 */
	--aihub-muted: #A3A1AA;      /* zinc-400 */
	--aihub-primary: #944DFF;    /* vivid purple */
	--aihub-primary-ink: #B78AFF;/* lighter purple for text/links on dark */
	--aihub-secondary: #EC4899;  /* pink accent */
	--aihub-accent: #B78AFF;
	--aihub-success: #22C55E;
	--aihub-warning: #F59E0B;
	--aihub-danger: #EF4444;
	--aihub-radius: 16px;
	--aihub-radius-sm: 10px;
	--aihub-content: 1200px;
	--aihub-article: 760px;
	/* Type system */
	--aihub-display: 'Sora', 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--aihub-font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	/* 8pt spacing scale */
	--sp-1: 0.5rem; --sp-2: 0.75rem; --sp-3: 1rem; --sp-4: 1.5rem;
	--sp-5: 2rem; --sp-6: 3rem; --sp-7: 4.5rem;
	/* Layered elevation + focus ring */
	--aihub-shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 30px -18px rgba(0,0,0,0.5);
	--aihub-shadow-lift: 0 24px 50px -24px rgba(0,0,0,0.65);
	--aihub-ring: 0 0 0 3px color-mix(in srgb, var(--aihub-primary) 40%, transparent);
}

/* Night-mode reading refinements */
::selection { background: color-mix(in srgb, var(--aihub-primary) 40%, transparent); color: #fff; }
* { scrollbar-color: var(--aihub-surface-2) var(--aihub-bg); }

/* Flatten Kadence's native button gradient to a single solid colour so no
   button anywhere on the site renders a brand gradient (per single-colour design). */
:root {
	--global-palette-btn-bg: var(--aihub-primary);
	--global-palette-btn-bg-hover: var(--aihub-accent);
}

/* ===================================================================== */
/*  Global dark canvas + Kadence chrome override                          */
/* ===================================================================== */
html { background: var(--aihub-bg); }
body { background-color: var(--aihub-bg) !important; color: var(--aihub-text); font-family: var(--aihub-font); -webkit-font-smoothing: antialiased; }

/* Dark canvas for the CONTENT region only. We deliberately do NOT target the
   shared wrappers (#wrapper, .site, .site-container) because Kadence also uses
   them inside the header/footer rows — styling them would fight the Customizer.
   Header & footer backgrounds/colours are 100% controlled by the Kadence
   Customizer (Appearance → Customize → Header / Footer). */
#inner-wrap,
.content-area,
.content-container,
#primary,
#main,
.entry-content-wrap {
	background-color: var(--aihub-bg) !important;
	color: var(--aihub-text);
}

/* ===================================================================== */
/*  AIHub template surfaces                                               */
/* ===================================================================== */
.aihub { background: transparent; color: var(--aihub-text); font-family: var(--aihub-font); }
.aihub a { color: var(--aihub-accent); text-decoration: none; }
.aihub a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.aihub h1, .aihub h2, .aihub h3, .aihub h4 { color: var(--aihub-text); line-height: 1.18; letter-spacing: -0.015em; }

/* --- Display type: a serif voice for major headings (editorial contrast) --- */
.aihub-hero h1,
.aihub-thero__titlerow h1,
.aihub-arthero h1,
.aihub-section > h2,
.aihub-shead h2,
.aihub-panel > h2,
.aihub-grid-section__heading,
.aihub-benchmark__heading,
.aihub-spotlight__body h3,
.aihub-band h2,
.aihub-feature__head h3 {
	font-family: var(--aihub-display);
	font-weight: 700;
	letter-spacing: -0.02em;
}
/* Sora carries the display voice; H-levels use the Customizer's 700. */
.aihub-hero h1, .aihub-arthero h1, .aihub-thero__titlerow h1 { font-weight: 700; }

/* Refined keyboard focus (accessible + intentional) */
.aihub a:focus-visible,
.aihub button:focus-visible,
.aihub input:focus-visible,
.aihub summary:focus-visible { outline: none; box-shadow: var(--aihub-ring); border-radius: 8px; }

/* Buttons, chips, headings and card titles manage their own colour — the
   generic link colour above must not bleed into them (higher specificity). */
.aihub a.aihub-btn,
.aihub a.aihub-cta,
.aihub a.aihub-chip { text-decoration: none; }
.aihub a.aihub-btn:hover,
.aihub a.aihub-cta:hover,
.aihub a.aihub-chip:hover { text-decoration: none; }
.aihub a.aihub-btn--ghost,
.aihub .aihub-btn--ghost { color: var(--aihub-text); }
.aihub a.aihub-btn--primary,
.aihub a.aihub-cta,
.aihub .aihub-cta { color: #fff; }
.aihub .aihub-card__title a,
.aihub .aihub-winner h3 a { color: var(--aihub-text); }
.aihub .aihub-card__title a:hover,
.aihub .aihub-winner h3 a:hover { color: var(--aihub-accent); text-decoration: none; }
.aihub .aihub-chip { color: var(--aihub-text); }

.aihub-wrap { max-width: var(--aihub-content); margin-inline: auto; padding: var(--sp-6) 1.25rem var(--sp-7); }
.aihub-wrap--article { max-width: var(--aihub-article); }
.aihub-wrap--article .aihub-longform { font-size: 1.08rem; line-height: 1.75; }

.aihub-section { margin-block: var(--sp-7); }
.aihub-section > h2, .aihub-grid-section__heading, .aihub-benchmark__heading {
	font-size: 1.6rem;
	margin-bottom: 1.25rem;
	position: relative;
	padding-left: 0.85rem;
}
.aihub-section > h2::before, .aihub-grid-section__heading::before {
	content: ""; position: absolute; left: 0; top: 0.15em; bottom: 0.15em; width: 4px;
	border-radius: 4px; background: var(--aihub-primary);
}
.aihub-meta-line { display: flex; gap: 0.6rem; flex-wrap: wrap; align-items: center; color: var(--aihub-muted); margin: 0.5rem 0 0; }
.aihub-disclosure--block {
	margin-top: 1.25rem; padding: 0.85rem 1rem; background: var(--aihub-surface-2);
	border-radius: var(--aihub-radius-sm); border: 1px solid var(--aihub-border); color: var(--aihub-muted); font-size: 0.85rem;
}
.aihub-disclosure--block p { margin: 0.25rem 0; }
.aihub-disclosure__links { display: flex; flex-wrap: wrap; gap: 0.25rem 0.6rem; }
.aihub-disclosure__links a { color: var(--aihub-muted); }
.aihub-disclosure__links a:hover { color: var(--aihub-accent); }

/* ===================================================================== */
/*  Hero                                                                  */
/* ===================================================================== */
.aihub-hero {
	position: relative;
	overflow: hidden;
	padding: 4.5rem 1.25rem 3.5rem;
	text-align: center;
	background: color-mix(in srgb, var(--aihub-primary) 9%, var(--aihub-bg-2));
	border-bottom: 1px solid var(--aihub-border);
}
/* Whisper-fine paper grain (tactile detail; degrades to nothing if unsupported) */
.aihub-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.18; mix-blend-mode: screen;
	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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");
	background-size: 140px 140px;
}
.aihub-hero__inner { position: relative; z-index: 1; max-width: 760px; margin-inline: auto; }
.aihub-hero h1 {
	font-size: clamp(2.15rem, 5vw, 3.4rem); margin: 0 0 1rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.07;
	color: var(--aihub-text);
}
.aihub-hero h1 span { color: var(--aihub-primary); }
.aihub-hero p { color: var(--aihub-muted); font-size: 1.15rem; line-height: 1.55; margin: 0 auto 2rem; max-width: 600px; }
.aihub-hero__search {
	position: relative;
	display: flex; gap: 0.4rem; max-width: 600px; margin: 0 auto 1.25rem;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 16px; padding: 7px 7px 7px 44px;
	box-shadow: 0 12px 34px -18px rgba(0,0,0,0.28);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.aihub-hero__search:focus-within { border-color: color-mix(in srgb, var(--aihub-primary) 55%, var(--aihub-border)); box-shadow: 0 12px 34px -14px color-mix(in srgb, var(--aihub-primary) 35%, transparent); }
.aihub-hero__search::before {
	content: ""; position: absolute; left: 15px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%);
	background: var(--aihub-muted); opacity: 0.6;
	-webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.2-3.2'/%3E%3C/svg%3E");
	mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.2-3.2'/%3E%3C/svg%3E");
}
.aihub-hero__search input[type="search"] {
	flex: 1; padding: 0.7rem 0.5rem; border-radius: 10px; border: none; background: transparent; color: var(--aihub-text); font-size: 1rem; outline: none;
}
.aihub-hero__search input[type="search"]::placeholder { color: var(--aihub-muted); }
.aihub-hero__ctas { display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap; margin-top: 0.25rem; }
.aihub-chips { display: flex; gap: 0.45rem; flex-wrap: wrap; justify-content: center; margin-top: 1.5rem; }
.aihub-chip {
	padding: 0.42rem 0.95rem; border-radius: 999px; font-size: 0.85rem; font-weight: 500;
	background: var(--aihub-surface);
	border: 1px solid var(--aihub-border); color: var(--aihub-text); text-decoration: none; transition: all 0.14s ease;
}
.aihub-chip:hover { border-color: var(--aihub-primary); background: var(--aihub-primary); color: #fff; text-decoration: none; transform: translateY(-1px); }
.aihub-trust { color: var(--aihub-muted); font-size: 0.85rem; margin-top: 1.4rem; }

/* ===================================================================== */
/*  Buttons                                                               */
/* ===================================================================== */
.aihub-btn, .aihub-cta {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
	padding: 0.7rem 1.35rem; border-radius: 12px; font-weight: 650; text-decoration: none; cursor: pointer;
	border: 1px solid transparent; transition: filter 0.15s ease, transform 0.06s ease, box-shadow 0.15s ease; white-space: nowrap;
}
.aihub-btn:hover, .aihub-cta:hover { text-decoration: none; }
.aihub-btn--primary, .aihub-cta {
	background: var(--aihub-primary); color: #fff;
	box-shadow: 0 8px 22px -10px color-mix(in srgb, var(--aihub-primary) 55%, transparent);
}
.aihub-btn--primary:hover, .aihub-cta:hover { filter: brightness(1.07); transform: translateY(-1px); }
.aihub-btn--ghost { background: rgba(255,255,255,0.02); color: var(--aihub-text); border-color: var(--aihub-border); }
.aihub-btn--ghost:hover { border-color: var(--aihub-primary); background: color-mix(in srgb, var(--aihub-primary) 10%, transparent); }

/* ===================================================================== */
/*  Panels / cards / grids                                                */
/* ===================================================================== */
.aihub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.15rem; }
.aihub-panel {
	background: var(--aihub-surface);
	border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.6rem 1.75rem; margin-bottom: 1.5rem;
	box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.aihub-panel > h2 { font-size: 1.35rem; margin-top: 0; margin-bottom: 1rem; letter-spacing: -0.02em; }
.aihub-verdict { font-size: 1.12rem; line-height: 1.6; color: var(--aihub-text); font-weight: 500; margin: 0 0 1rem; }

/* Editorial micro-eyebrow above a heading (professional section labelling) */
.aihub-eyebrow { display: inline-flex; align-items: center; gap: 0.55rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--aihub-primary); margin-bottom: 0.5rem; }
.aihub-eyebrow::before { content: ""; width: 20px; height: 2px; background: var(--aihub-primary); border-radius: 2px; flex: none; }
.aihub-panel .aihub-eyebrow + h2 { margin-top: 0; }

/* Drop-cap for the opening paragraph of long-form overviews */
.aihub-longform--dropcap > p:first-of-type::first-letter {
	float: left; font-size: 3.1rem; line-height: 0.82; font-weight: 800; color: var(--aihub-primary);
	margin: 0.15rem 0.6rem 0 0;
}

/* Editorial article hero (reviews, comparisons, guides…) */
.aihub-arthero { margin: 0 0 1.75rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--aihub-border); }
.aihub-arthero h1 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.12; letter-spacing: -0.03em; margin: 0 0 0.7rem; }
.aihub-arthero__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; color: var(--aihub-muted); font-size: 0.88rem; }
.aihub-arthero__meta span { display: inline-flex; align-items: center; }
.aihub-arthero__meta span + span::before { content: "·"; margin-right: 1rem; opacity: 0.6; }
.aihub-arthero__tool {
	display: flex; align-items: center; gap: 0.85rem; margin-top: 1.25rem; padding: 0.9rem 1.1rem;
	background: color-mix(in srgb, var(--aihub-primary) 5%, var(--aihub-surface));
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 16%, var(--aihub-border)); border-radius: var(--aihub-radius);
}
.aihub-arthero__tool .aihub-avatar { width: 46px; height: 46px; border-radius: 12px; flex: none; }
.aihub-arthero__toolmeta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.aihub-arthero__toolname { font-weight: 700; color: var(--aihub-text); }
.aihub-arthero__toolname:hover { color: var(--aihub-accent); }
.aihub-arthero__tool .aihub-score { align-self: flex-start; }

/* ===================================================================== */
/*  Tool single — editorial layout                                       */
/* ===================================================================== */
/* Hero band */
.aihub-thero {
	display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 2rem; align-items: center;
	background: color-mix(in srgb, var(--aihub-primary) 5%, var(--aihub-surface));
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 14%, var(--aihub-border));
	border-radius: var(--aihub-radius); padding: 2rem 2.25rem;
}
.aihub-thero__main { display: flex; gap: 1.4rem; align-items: flex-start; min-width: 0; }
.aihub-thero__main .aihub-avatar { width: 88px; height: 88px; border-radius: 20px; flex: none; }
.aihub-thero__intro { min-width: 0; }
.aihub-thero__titlerow { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; }
.aihub-thero__titlerow h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 0; letter-spacing: -0.03em; }
.aihub-thero__tag { color: var(--aihub-muted); font-size: 1.05rem; line-height: 1.5; margin: 0.55rem 0 1.1rem; max-width: 52ch; }
.aihub-thero__actions { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.aihub-thero__actions .aihub-score { font-size: 1rem; padding: 5px 11px; border-radius: 10px; background: var(--aihub-surface); border: 1px solid var(--aihub-border); }
.aihub-thero__note { display: block; font-size: 0.76rem; color: var(--aihub-muted); margin-top: 0.85rem; }
/* Editor scorecard */
.aihub-thero__card { background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.4rem; text-align: center; box-shadow: 0 12px 34px -22px rgba(0,0,0,0.4); }
.aihub-thero__ring { width: 128px; height: 128px; border-radius: 50%; margin: 0 auto 0.7rem; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--aihub-primary) calc(var(--pct) * 1%), var(--aihub-surface-2) 0); }
.aihub-thero__ringin { width: 104px; height: 104px; border-radius: 50%; background: var(--aihub-surface); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.aihub-thero__num { font-size: 2.1rem; font-weight: 800; line-height: 1; color: var(--aihub-text); }
.aihub-thero__den { font-size: 0.75rem; color: var(--aihub-muted); }
.aihub-thero__cardlbl { display: block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--aihub-muted); }
.aihub-thero__cardfoot { display: flex; justify-content: space-between; gap: 0.5rem; margin-top: 0.9rem; padding-top: 0.8rem; border-top: 1px solid var(--aihub-border-soft); font-size: 0.78rem; color: var(--aihub-muted); }

/* Stats strip */
.aihub-tstats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 1.25rem 0 0; border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); background: var(--aihub-surface); overflow: hidden; }
.aihub-tstat { padding: 1.1rem 1.35rem; position: relative; }
.aihub-tstat + .aihub-tstat::before { content: ""; position: absolute; left: 0; top: 24%; bottom: 24%; width: 1px; background: var(--aihub-border); }
.aihub-tstat__label { display: block; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--aihub-muted); margin-bottom: 0.3rem; }
.aihub-tstat__val { display: block; font-weight: 700; font-size: 1.02rem; color: var(--aihub-text); }

/* Body layout */
.aihub-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 1.75rem; margin-top: 1.75rem; align-items: start; }
.aihub-sidebar { display: flex; flex-direction: column; gap: 1.25rem; }

/* Sticky visit CTA card */
.aihub-visitcard { position: sticky; top: 1.25rem; z-index: 1; background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.25rem; text-align: center; box-shadow: 0 10px 30px -22px rgba(0,0,0,0.3); }
.aihub-visitcard .aihub-cta, .aihub-visitcard .aihub-btn { width: 100%; font-size: 1rem; padding: 0.8rem 1rem; }
.aihub-visitcard__domain { display: block; font-size: 0.82rem; color: var(--aihub-muted); margin: 0.6rem 0 0.35rem; }
.aihub-visitcard .aihub-disclosure { display: block; font-size: 0.72rem; color: var(--aihub-muted); }

/* Spec cards (At a glance / Privacy / Categories / Share) */
.aihub-spec { background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.25rem 1.35rem; }
.aihub-spec > .aihub-eyebrow { margin-bottom: 0.8rem; }
.aihub-spec__list { margin: 0; }
.aihub-spec__row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-bottom: 1px solid var(--aihub-border-soft); }
.aihub-spec__row:last-child { border-bottom: none; }
.aihub-spec__row dt { color: var(--aihub-muted); font-size: 0.9rem; margin: 0; }
.aihub-spec__row dd { margin: 0; font-weight: 650; text-align: right; color: var(--aihub-text); font-size: 0.92rem; }
.aihub-spec__foot { margin: 0.85rem 0 0; font-size: 0.74rem; color: var(--aihub-muted); }
.aihub-spec__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.aihub-spec__report { display: inline-block; margin-top: 0.9rem; font-size: 0.85rem; color: var(--aihub-primary); font-weight: 600; }

/* Share buttons */
.aihub-share { display: flex; gap: 0.5rem; }
.aihub-share__btn { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 0.7rem; border-radius: 10px; border: 1px solid var(--aihub-border); background: var(--aihub-surface); color: var(--aihub-text); font-weight: 700; font-size: 0.85rem; cursor: pointer; text-decoration: none; transition: border-color 0.14s ease, background 0.14s ease; }
.aihub-share__btn:hover { border-color: var(--aihub-primary); background: color-mix(in srgb, var(--aihub-primary) 8%, var(--aihub-surface)); text-decoration: none; }
.aihub-share__copy { flex: 1; }

/* Pros & cons */
.aihub-proscons { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.aihub-proscons strong { display: block; margin-bottom: 0.5rem; }
.aihub-proscons ul { margin: 0.25rem 0 0; padding-left: 1.2rem; line-height: 1.7; }
.aihub-proscons--pros li { color: var(--aihub-success); }
.aihub-proscons--pros li span, .aihub-proscons--cons li span { color: var(--aihub-text); }
.aihub-proscons--cons li { color: var(--aihub-warning); }
.aihub-changelog { list-style: none; margin: 0; padding: 0; color: var(--aihub-muted); font-size: 0.9rem; }
.aihub-changelog li { display: flex; justify-content: space-between; border-bottom: 1px solid var(--aihub-border-soft); padding: 0.5rem 0; }
.aihub-changelog li:last-child { border-bottom: none; }

@media (max-width: 820px) {
	.aihub-thero { grid-template-columns: 1fr; }
	.aihub-thero__card { max-width: 260px; }
	.aihub-tstats { grid-template-columns: repeat(2, 1fr); }
	.aihub-tstat:nth-child(odd)::before { content: none; }
	.aihub-tstat:nth-child(3), .aihub-tstat:nth-child(4) { border-top: 1px solid var(--aihub-border); }
	.aihub-visitcard { position: static; }
}
@media (max-width: 560px) {
	.aihub-thero__main { flex-direction: column; }
	.aihub-proscons { grid-template-columns: 1fr; }
}

/* ===================================================================== */
/*  Archive / facets                                                     */
/* ===================================================================== */
.aihub-archive__head { margin-bottom: 1.75rem; }
.aihub-archive__head h1 { font-size: 2.1rem; margin: 0 0 0.5rem; }
.aihub-facets {
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius);
	padding: 1.1rem 1.35rem; margin-bottom: 1.75rem; box-shadow: var(--aihub-shadow);
}
.aihub-facets__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1.1rem; margin-top: 0.85rem; }
.aihub-facets__bar { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.85rem; padding-top: 0.85rem; border-top: 1px solid var(--aihub-border-soft); }
.aihub-facets .facetwp-facet { margin: 0; }
.aihub-facets label, .aihub-facets .facetwp-facet { color: var(--aihub-text); }

/* FacetWP dark theming so filters match the design system */
.facetwp-facet input[type="text"],
.facetwp-facet input[type="search"],
.facetwp-search .facetwp-search-input,
.facetwp-type-search input {
	background: var(--aihub-surface-2) !important;
	border: 1px solid var(--aihub-border) !important;
	color: var(--aihub-text) !important;
	border-radius: 10px !important;
	padding: 0.55rem 0.8rem !important;
}
.facetwp-facet input::placeholder { color: var(--aihub-muted) !important; }
.facetwp-facet .facetwp-checkbox,
.facetwp-facet .facetwp-radio,
.facetwp-facet .facetwp-link {
	color: var(--aihub-text);
	background-image: none !important;
	padding: 5px 2px;
	border-radius: 8px;
	transition: color 0.12s ease;
	display: flex;
	align-items: center;
}
.facetwp-facet .facetwp-checkbox:hover,
.facetwp-facet .facetwp-radio:hover { color: var(--aihub-accent); }
.facetwp-facet .facetwp-counter { color: var(--aihub-muted); }
.facetwp-facet .facetwp-checkbox.checked,
.facetwp-facet .facetwp-radio.checked { color: var(--aihub-accent); font-weight: 600; }
.facetwp-type-fselect .fs-wrap .fs-label-wrap,
.facetwp-facet select {
	background: var(--aihub-surface-2) !important;
	border: 1px solid var(--aihub-border) !important;
	color: var(--aihub-text) !important;
	border-radius: 10px !important;
}
.facetwp-slider-wrap .noUi-connect,
.facetwp-slider .noUi-connect { background: var(--aihub-primary) !important; }
.facetwp-slider-wrap .noUi-handle,
.facetwp-slider .noUi-handle {
	background: var(--aihub-text) !important;
	border: 2px solid var(--aihub-primary) !important;
	border-radius: 50% !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.4) !important;
}
.facetwp-slider .noUi-base, .facetwp-slider-wrap .noUi-base { background: var(--aihub-surface-2); border-radius: 999px; }
.facetwp-facet .facetwp-slider-label, .facetwp-slider-label { color: var(--aihub-muted); }
.aihub-facets .facetwp-facet .facetwp-btn,
.aihub-facets .facetwp-reset,
.aihub-facets button.facetwp-btn,
.aihub-facets a.facetwp-reset,
.aihub-facets .facetwp-slider-reset {
	background: rgba(255,255,255,0.04) !important;
	background-image: none !important;
	border: 1px solid var(--aihub-border) !important;
	color: var(--aihub-text) !important;
	border-radius: 10px !important;
	padding: 0.5rem 1rem !important;
	box-shadow: none !important;
	cursor: pointer;
}
.aihub-facets .facetwp-btn:hover, .aihub-facets .facetwp-reset:hover { border-color: var(--aihub-primary) !important; color: #fff !important; }
/* Clear checked indicator for the filter list */
.facetwp-facet .facetwp-checkbox { background: none; }
.facetwp-facet .facetwp-checkbox::before {
	content: ""; display: inline-block; width: 15px; height: 15px; margin-right: 9px; vertical-align: -2px;
	border: 1.5px solid var(--aihub-border); border-radius: 5px; background: var(--aihub-surface-2);
}
.facetwp-facet .facetwp-checkbox.checked::before {
	background: var(--aihub-primary);
	border-color: transparent;
	box-shadow: inset 0 0 0 2px var(--aihub-surface-2);
}
.facetwp-selections { list-style: none; display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0; padding: 0; }
.facetwp-selections li { color: var(--aihub-muted); }
.facetwp-selection-value { background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); border-radius: 999px; padding: 3px 10px; color: var(--aihub-text); }
.aihub-pagination { margin-top: 2rem; }
.aihub-pagination .page-numbers {
	display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; padding: 0 0.6rem;
	border: 1px solid var(--aihub-border); border-radius: 10px; color: var(--aihub-text); text-decoration: none; margin: 0 3px;
}
.aihub-pagination .page-numbers.current { background: var(--aihub-primary); border-color: var(--aihub-primary); color: #fff; }
.aihub-pagination .page-numbers:hover { border-color: var(--aihub-primary); }

/* ===================================================================== */
/*  Category / winners                                                   */
/* ===================================================================== */
.aihub-intro { color: var(--aihub-muted); max-width: 780px; font-size: 1.02rem; line-height: 1.7; }
.aihub-winners { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.15rem; }
.aihub-winner {
	display: flex; flex-direction: column; gap: 0.75rem;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.15rem 1.2rem;
	transition: transform 0.16s ease, border-color 0.16s ease; box-shadow: var(--aihub-shadow);
}
.aihub-winner:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--aihub-primary) 40%, var(--aihub-border)); }
.aihub-winner__label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--aihub-secondary); font-weight: 700; }
.aihub-winner__head { display: flex; align-items: center; gap: 0.7rem; }
.aihub-winner__head .aihub-avatar { width: 44px; height: 44px; border-radius: 12px; flex: none; }
.aihub-winner__meta { flex: 1; min-width: 0; }
.aihub-winner h3 { margin: 0; font-size: 1.08rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-winner__price { display: block; font-size: 0.8rem; color: var(--aihub-muted); margin-top: 0.15rem; font-variant-numeric: tabular-nums; }
.aihub-winner__head .aihub-score { flex: none; align-self: flex-start; }
.aihub-winner .aihub-badge--privacy { align-self: flex-start; }
.aihub-winner__actions { display: flex; gap: 0.5rem; margin-top: auto; }
.aihub-winner__actions > * { flex: 1; text-align: center; padding: 0.5rem 0.75rem; font-size: 0.88rem; }

/* "Best of" featured winner cards */
.aihub-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.15rem; }
.aihub-feature {
	position: relative;
	display: flex; flex-direction: column; gap: 0.7rem;
	background: var(--aihub-surface);
	border: 1px solid var(--aihub-border);
	border-top: 3px solid var(--fa, var(--aihub-primary));
	border-radius: var(--aihub-radius);
	padding: 1.25rem;
	box-shadow: var(--aihub-shadow);
	transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.aihub-feature:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -16px color-mix(in srgb, var(--fa, var(--aihub-primary)) 55%, transparent); }
.aihub-feature__label {
	font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--fa, var(--aihub-primary));
}
.aihub-feature__head { display: flex; align-items: center; gap: 0.7rem; }
.aihub-feature__head h3 { margin: 0 0 0.2rem; font-size: 1.1rem; }
.aihub-feature__head h3 a { color: var(--aihub-text); }
.aihub-feature__head h3 a:hover { color: var(--aihub-accent); text-decoration: none; }
.aihub-feature__desc { margin: 0; color: var(--aihub-muted); font-size: 0.9rem; flex: 1; }
.aihub-feature__actions { display: flex; gap: 0.5rem; }
.aihub-feature__actions .aihub-btn, .aihub-feature__actions .aihub-cta { flex: 1; padding-top: 0.5rem; padding-bottom: 0.5rem; }

.aihub-longform { line-height: 1.75; }
.aihub-longform h2 { margin-top: 2rem; }
.aihub-muted { color: var(--aihub-muted); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ===================================================================== */
/*  Responsive                                                           */
/* ===================================================================== */
@media (max-width: 960px) {
	.aihub-layout { grid-template-columns: 1fr; }
	.aihub-sidebar { position: static; }
}
@media (max-width: 520px) {
	.aihub-hero { padding: 3.5rem 1rem 2.5rem; }
	.aihub-wrap { padding: 1.75rem 1rem 3rem; }
	.aihub-section > h2 { font-size: 1.35rem; }
}

/* ===================================================================== */
/*  Modern homepage sections                                              */
/* ===================================================================== */
.aihub-section--tight { margin-block: 2rem; }
.aihub-hero__eyebrow {
	display: inline-block; margin-bottom: 1rem; padding: 0.35rem 0.9rem; border-radius: 999px;
	font-size: 0.8rem; font-weight: 600; color: var(--aihub-primary);
	background: color-mix(in srgb, var(--aihub-primary) 12%, var(--aihub-surface)); border: 1px solid color-mix(in srgb, var(--aihub-primary) 25%, transparent);
}

/* Section head with eyebrow + link */
.aihub-shead { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.aihub-shead__eyebrow { display: inline-flex; align-items: center; gap: 0.55rem; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--aihub-primary); margin-bottom: 0.35rem; }
.aihub-shead__eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--aihub-primary); border-radius: 2px; flex: none; }
.aihub-shead h2 { font-size: 1.6rem; margin: 0; padding: 0; }
.aihub-shead h2::before { display: none; }
.aihub-shead__link { font-size: 0.9rem; font-weight: 600; white-space: nowrap; color: var(--aihub-primary); }

/* Stat tiles — clean divided row on a single surface card */
.aihub-stats {
	display: grid; grid-template-columns: repeat(4, 1fr);
	max-width: 640px; margin: 2.25rem auto 0;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 16px;
	box-shadow: 0 10px 30px -20px rgba(0,0,0,0.3); overflow: hidden;
}
.aihub-stat { padding: 1.05rem 0.5rem; text-align: center; position: relative; }
.aihub-stat + .aihub-stat::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: var(--aihub-border); }
.aihub-stat__num { display: block; font-size: 1.6rem; font-weight: 800; letter-spacing: -0.02em; color: var(--aihub-primary); }
.aihub-stat__label { display: block; font-size: 0.72rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; color: var(--aihub-muted); margin-top: 0.2rem; }
@media (max-width: 560px) {
	.aihub-stats { grid-template-columns: repeat(2, 1fr); }
	.aihub-stat:nth-child(3)::before, .aihub-stat:nth-child(2)::before { content: none; }
	.aihub-stat:nth-child(odd)::before { content: none; }
	.aihub-stat:nth-child(3), .aihub-stat:nth-child(4) { border-top: 1px solid var(--aihub-border); }
}

/* Category tiles — richer cards with icon tile, name, top pick + count pill */
.aihub-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.aihub-cat {
	position: relative; display: flex; align-items: center; gap: 1rem;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 16px;
	padding: 1.1rem 1.15rem; text-decoration: none;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
	overflow: hidden;
}
.aihub-cat::after {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
	background: var(--aihub-primary); transform: scaleY(0); transform-origin: top; transition: transform 0.18s ease;
}
.aihub-cat:hover {
	transform: translateY(-4px);
	border-color: color-mix(in srgb, var(--aihub-primary) 40%, var(--aihub-border));
	box-shadow: 0 16px 34px -20px color-mix(in srgb, var(--aihub-primary) 35%, transparent), 0 2px 8px rgba(0,0,0,0.06);
	text-decoration: none;
}
.aihub-cat:hover::after { transform: scaleY(1); }
.aihub-cat__ico {
	width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center;
	font-size: 1.5rem; flex: none;
	background: color-mix(in srgb, var(--aihub-primary) 12%, var(--aihub-surface));
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 22%, transparent);
	color: var(--aihub-text); transition: background 0.18s ease, transform 0.18s ease;
}
.aihub-cat:hover .aihub-cat__ico { background: var(--aihub-primary); transform: scale(1.05); }
.aihub-cat__txt { flex: 1; min-width: 0; }
.aihub-cat__name { display: block; font-weight: 700; font-size: 1.02rem; color: var(--aihub-text); letter-spacing: -0.01em; }
.aihub-cat__meta { display: block; font-size: 0.82rem; color: var(--aihub-muted); margin-top: 0.15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-cat__count {
	flex: none; align-self: flex-start; font-size: 0.72rem; font-weight: 600; white-space: nowrap;
	padding: 3px 9px; border-radius: 999px;
	background: var(--aihub-surface-2); color: var(--aihub-muted); border: 1px solid var(--aihub-border);
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.aihub-cat:hover .aihub-cat__count { background: color-mix(in srgb, var(--aihub-primary) 12%, var(--aihub-surface)); color: var(--aihub-primary); border-color: color-mix(in srgb, var(--aihub-primary) 30%, transparent); }

/* ===================================================================== */
/*  Split hero (reference layout: copy + form left, network visual right)  */
/* ===================================================================== */
.aihub-hero--split { text-align: left; padding: 4rem 1.25rem 3.5rem; }
.aihub-hero__grid { max-width: var(--aihub-content); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 2.5rem; align-items: center; }
.aihub-hero--split .aihub-hero__col { min-width: 0; }
.aihub-hero--split h1 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); }
.aihub-hero--split p { margin-inline: 0; }
.aihub-hero--split .aihub-hero__search { margin-inline: 0; }
.aihub-hero--split .aihub-hero__ctas { justify-content: flex-start; }
.aihub-hero--split .aihub-stats { margin-inline: 0; margin-left: 0; }
.aihub-hero__visual { display: flex; align-items: center; justify-content: center; min-width: 0; }
.aihub-constellation { width: 100%; max-width: 520px; height: auto; overflow: visible; }
.aihub-cnode { animation: aihub-pulse 3.6s ease-in-out infinite; animation-delay: var(--d, 0ms); transform-box: fill-box; transform-origin: center; }
@keyframes aihub-pulse { 0%, 100% { opacity: inherit; } 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .aihub-cnode { animation: none; } }
@media (max-width: 900px) {
	.aihub-hero__grid { grid-template-columns: 1fr; gap: 1.5rem; text-align: center; }
	.aihub-hero--split { text-align: center; }
	.aihub-hero--split p, .aihub-hero--split .aihub-hero__search { margin-inline: auto; }
	.aihub-hero--split .aihub-hero__ctas { justify-content: center; }
	.aihub-hero--split .aihub-stats { margin-inline: auto; }
	.aihub-hero__visual { order: 2; }
	.aihub-constellation { max-width: 360px; }
}

/* ===================================================================== */
/*  Feed grid: editorial feed (left) + Top-20 ranked sidebar (right)       */
/* ===================================================================== */
.aihub-feedgrid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; align-items: start; }
.aihub-feedgrid__main { min-width: 0; }
.aihub-feedgrid__side { min-width: 0; position: sticky; top: 1.5rem; }
@media (max-width: 940px) { .aihub-feedgrid { grid-template-columns: 1fr; } .aihub-feedgrid__side { position: static; } }

/* Editorial feed rows — real portrait images + deck + tested chip */
.aihub-feed { display: flex; flex-direction: column; gap: 0.15rem; }
.aihub-feed__item {
	display: flex; gap: 1rem; align-items: flex-start; padding: 0.85rem; border-radius: 14px;
	border: 1px solid transparent; text-decoration: none; transition: background 0.14s ease, border-color 0.14s ease, transform 0.14s ease;
}
.aihub-feed__item:hover { background: var(--aihub-surface); border-color: var(--aihub-border); transform: translateX(2px); text-decoration: none; box-shadow: 0 8px 22px -18px rgba(0,0,0,0.35); }
.aihub-feed__item.is-lead {
	background: color-mix(in srgb, var(--aihub-primary) 5%, var(--aihub-surface));
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 22%, var(--aihub-border));
	border-left: 3px solid var(--aihub-primary);
	padding: 1rem; margin-bottom: 0.4rem;
}
.aihub-feed__item.is-lead .aihub-feed__thumb { width: 96px; height: 118px; }
.aihub-feed__item.is-lead .aihub-feed__title { font-size: 1.12rem; }
.aihub-feed__thumb {
	position: relative; flex: none; width: 76px; height: 92px; border-radius: 12px; overflow: hidden;
	display: flex; align-items: center; justify-content: center;
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border);
}
.aihub-feed__thumb img { width: 100%; height: 100%; object-fit: cover; }
.aihub-feed__ico { font-size: 1.6rem; }
.aihub-feed__ribbon {
	position: absolute; left: 0; bottom: 0; right: 0; padding: 3px 6px;
	font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
	color: #fff; background: var(--aihub-primary); text-align: center;
}
.aihub-feed__body { min-width: 0; flex: 1; padding-top: 0.15rem; }
.aihub-feed__kicker { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.3rem; }
.aihub-feed__tag { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.aihub-feed__tag--accent { color: var(--aihub-accent); }
.aihub-feed__tag--primary { color: var(--aihub-primary); }
.aihub-feed__tag--secondary { color: var(--aihub-secondary); }
.aihub-feed__tag--success { color: var(--aihub-success); }
.aihub-feed__tag--warning { color: var(--aihub-warning); }
.aihub-feed__time { font-size: 0.72rem; color: var(--aihub-muted); }
.aihub-feed__time::before { content: "· "; }
.aihub-feed__tested { font-size: 0.68rem; font-weight: 700; color: var(--aihub-success); background: color-mix(in srgb, var(--aihub-success) 12%, var(--aihub-surface)); border: 1px solid color-mix(in srgb, var(--aihub-success) 30%, transparent); padding: 1px 7px; border-radius: 999px; }
.aihub-feed__title { display: block; font-weight: 700; color: var(--aihub-text); line-height: 1.32; font-size: 1rem; letter-spacing: -0.01em; }
.aihub-feed__item:hover .aihub-feed__title { color: var(--aihub-accent); }
.aihub-feed__deck { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 0.3rem; font-size: 0.85rem; line-height: 1.45; color: var(--aihub-muted); }

/* Top 20 ranked sidebar panel */
.aihub-t20 { background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.15rem; box-shadow: 0 10px 30px -22px rgba(0,0,0,0.3); }
.aihub-t20__head { margin-bottom: 0.9rem; }
.aihub-t20__title { display: block; font-weight: 800; font-size: 1.1rem; letter-spacing: -0.01em; }
.aihub-t20__sub { display: block; font-size: 0.8rem; color: var(--aihub-muted); margin-top: 0.15rem; }
.aihub-t20__featured {
	display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem; margin-bottom: 0.9rem;
	background: color-mix(in srgb, var(--aihub-primary) 6%, var(--aihub-surface));
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 20%, var(--aihub-border)); border-radius: 12px; text-decoration: none;
	transition: border-color 0.14s ease;
}
.aihub-t20__featured:hover { border-color: color-mix(in srgb, var(--aihub-primary) 45%, var(--aihub-border)); text-decoration: none; }
.aihub-t20__ring { flex: none; width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--aihub-primary) calc(var(--pct) * 1%), var(--aihub-surface-2) 0); }
.aihub-t20__ringnum { width: 36px; height: 36px; border-radius: 50%; background: var(--aihub-surface); display: flex; align-items: center; justify-content: center; font-size: 0.82rem; font-weight: 800; color: var(--aihub-text); font-variant-numeric: tabular-nums; }
.aihub-t20__fbody { flex: 1; min-width: 0; }
.aihub-t20__fname { display: block; font-weight: 700; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-t20__ftag { display: block; font-size: 0.76rem; color: var(--aihub-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-t20__badge { flex: none; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 3px 7px; border-radius: 6px; background: color-mix(in srgb, var(--aihub-primary) 14%, var(--aihub-surface)); color: var(--aihub-primary); }
.aihub-t20__badge--sp { background: var(--aihub-warning); color: #1a1200; }
.aihub-t20__list { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.aihub-t20__row { display: flex; align-items: center; gap: 0.65rem; padding: 0.5rem 0.35rem; border-radius: 10px; text-decoration: none; transition: background 0.12s ease; }
.aihub-t20__row:hover { background: var(--aihub-surface-2); text-decoration: none; }
.aihub-t20__list li + li { border-top: 1px solid var(--aihub-border-soft); }
.aihub-t20__rank { flex: none; width: 20px; text-align: center; font-size: 0.82rem; font-weight: 700; color: var(--aihub-muted); font-variant-numeric: tabular-nums; }
.aihub-t20__row .aihub-avatar { width: 30px; height: 30px; border-radius: 8px; }
.aihub-t20__meta { flex: 1; min-width: 0; }
.aihub-t20__name { display: block; font-weight: 650; font-size: 0.9rem; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-t20__row:hover .aihub-t20__name { color: var(--aihub-accent); }
.aihub-t20__cat { display: block; font-size: 0.72rem; color: var(--aihub-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-t20__price { color: var(--aihub-text); font-weight: 600; }
.aihub-t20__pill { flex: none; align-self: center; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 6px; border-radius: 5px; background: color-mix(in srgb, var(--aihub-success) 14%, var(--aihub-surface)); color: var(--aihub-success); }
.aihub-t20__score { flex: none; font-size: 0.86rem; font-weight: 800; font-variant-numeric: tabular-nums; padding: 2px 7px; border-radius: 7px; background: var(--aihub-surface-2); }
.aihub-t20__score--strong { color: var(--aihub-success); }
.aihub-t20__score--good { color: var(--aihub-accent); }
.aihub-t20__score--average { color: var(--aihub-warning); }
.aihub-t20__score--weak { color: var(--aihub-danger); }
.aihub-t20__more { width: 100%; margin-top: 0.9rem; }

/* Horizontal analysis cards (reference "Commentary & Analysis") */
.aihub-hcards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.15rem; }
@media (max-width: 640px) { .aihub-hcards { grid-template-columns: 1fr; } }
.aihub-hcard { display: flex; gap: 1rem; align-items: center; background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 0.9rem; text-decoration: none; box-shadow: 0 1px 2px rgba(0,0,0,0.04); transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease; }
.aihub-hcard:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--aihub-primary) 35%, var(--aihub-border)); box-shadow: 0 14px 30px -18px color-mix(in srgb, var(--aihub-primary) 30%, transparent); text-decoration: none; }
.aihub-hcard__thumb { flex: none; width: 110px; height: 84px; border-radius: 12px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--aihub-primary) 10%, var(--aihub-surface)); border: 1px solid var(--aihub-border); }
.aihub-hcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
.aihub-hcard__ico { font-size: 1.9rem; }
.aihub-hcard__body { min-width: 0; }
.aihub-hcard__title { display: block; font-weight: 700; color: var(--aihub-text); line-height: 1.3; letter-spacing: -0.01em; }
.aihub-hcard:hover .aihub-hcard__title { color: var(--aihub-accent); }
.aihub-hcard__meta { display: block; font-size: 0.78rem; color: var(--aihub-muted); margin-top: 0.3rem; }

/* Editor's Choice spotlight */
.aihub-spotlight {
	display: grid; grid-template-columns: 200px 1fr; gap: 2rem; align-items: center;
	background: var(--aihub-surface);
	border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 2rem; box-shadow: var(--aihub-shadow);
}
.aihub-spotlight__ring { width: 180px; height: 180px; border-radius: 50%; margin: 0 auto; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--aihub-primary) calc(var(--pct) * 1%), var(--aihub-surface-2) 0); }
.aihub-spotlight__ringinner { width: 152px; height: 152px; border-radius: 50%; background: var(--aihub-surface); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.aihub-spotlight__ringinner .aihub-avatar { width: 40px; height: 40px; margin-bottom: 4px; }
.aihub-spotlight__score { font-size: 2.4rem; font-weight: 800; line-height: 1; color: var(--aihub-text); }
.aihub-spotlight__scorelbl { font-size: 0.72rem; color: var(--aihub-muted); }
.aihub-spotlight__body h3 { font-size: 1.6rem; margin: 0.6rem 0 0.5rem; }
.aihub-spotlight__body p { color: var(--aihub-muted); margin: 0 0 0.75rem; }
.aihub-spotlight__pros { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; }
.aihub-spotlight__pros li { color: var(--aihub-text); font-size: 0.9rem; }
.aihub-spotlight__pros li::before { content: "✓"; color: var(--aihub-success); font-weight: 800; margin-right: 0.4rem; }
.aihub-spotlight__cta { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.aihub-badge--gold { background: var(--aihub-primary); color: #fff; border: none; font-weight: 700; }

/* Why-trust columns */
.aihub-panel--trust { background: var(--aihub-surface); }
.aihub-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.25rem; }
.aihub-trust__col { text-align: left; }
.aihub-trust__ico { display: inline-flex; width: 46px; height: 46px; align-items: center; justify-content: center; font-size: 1.4rem; border-radius: 12px; background: var(--aihub-surface-2); margin-bottom: 0.6rem; }
.aihub-trust__col h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }
.aihub-trust__col p { color: var(--aihub-muted); font-size: 0.9rem; margin: 0; line-height: 1.6; }

/* CTA band */
.aihub-band { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
	background: var(--aihub-primary); border-radius: var(--aihub-radius); padding: 1.75rem 2rem; box-shadow: 0 16px 40px -18px color-mix(in srgb, var(--aihub-primary) 60%, transparent); }
.aihub-band--alt { background: var(--aihub-primary); }
.aihub-band h2 { color: #fff; margin: 0 0 0.2rem; font-size: 1.4rem; }
.aihub-band p { color: rgba(255,255,255,0.9); margin: 0; }
.aihub-btn--light { background: #fff; color: var(--aihub-primary); font-weight: 700; }
.aihub-btn--light:hover { background: #fff; filter: brightness(0.97); transform: translateY(-1px); }

/* Guide cards */
.aihub-guides { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.15rem; }
.aihub-guidecard { display: flex; flex-direction: column; background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius); padding: 1.4rem; text-decoration: none; box-shadow: var(--aihub-shadow); transition: transform 0.16s ease, border-color 0.16s ease; }
.aihub-guidecard:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--aihub-primary) 35%, var(--aihub-border)); text-decoration: none; }
.aihub-guidecard__tag { align-self: flex-start; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--aihub-primary); background: color-mix(in srgb, var(--aihub-primary) 12%, var(--aihub-surface)); padding: 3px 10px; border-radius: 999px; margin-bottom: 0.75rem; }
.aihub-guidecard h3 { font-size: 1.1rem; margin: 0 0 0.5rem; color: var(--aihub-text); }
.aihub-guidecard p { color: var(--aihub-muted); font-size: 0.9rem; flex: 1; margin: 0 0 0.75rem; }
.aihub-guidecard__more { font-weight: 600; color: var(--aihub-primary); font-size: 0.9rem; }

@media (max-width: 700px) {
	.aihub-stats { grid-template-columns: repeat(2, 1fr); }
	.aihub-spotlight { grid-template-columns: 1fr; text-align: center; }
	.aihub-spotlight__pros, .aihub-spotlight__cta { justify-content: center; }
	.aihub-shead h2 { font-size: 1.35rem; }
}

/* ===================================================================== */
/*  Sidebar rail + shell (aipornapps-style browse layout)                 */
/* ===================================================================== */
.aihub-wrap--shell { max-width: 1320px; }
.aihub-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 1.75rem; align-items: start; }
.aihub-shell__main { min-width: 0; }
.aihub-rail__inner {
	position: sticky; top: 84px;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius);
	padding: 1rem 0.85rem; box-shadow: var(--aihub-shadow);
	max-height: calc(100vh - 100px); overflow-y: auto;
}
.aihub-rail__title { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--aihub-muted); margin: 0.75rem 0.5rem 0.4rem; }
.aihub-rail__title:first-child { margin-top: 0; }
.aihub-rail__list { list-style: none; margin: 0 0 0.5rem; padding: 0; }
.aihub-rail__list a {
	display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.6rem; border-radius: 10px;
	color: var(--aihub-text); text-decoration: none; font-size: 0.92rem; transition: background 0.12s ease, color 0.12s ease;
}
.aihub-rail__list a:hover { background: var(--aihub-surface-2); color: #fff; text-decoration: none; }
.aihub-rail__list a.is-active { background: color-mix(in srgb, var(--aihub-primary) 18%, transparent); color: #fff; }
.aihub-rail__ico { width: 1.3rem; text-align: center; font-size: 1rem; flex: none; }
.aihub-rail__label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-rail__count { font-size: 0.75rem; color: var(--aihub-muted); background: var(--aihub-surface-2); border-radius: 999px; padding: 1px 8px; }
.aihub-rail__cta { width: 100%; margin-top: 0.5rem; }
.aihub-langs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.5rem; }
.aihub-lang { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.35rem 0.6rem; border-radius: 8px; border: 1px solid var(--aihub-border); background: var(--aihub-surface-2); color: var(--aihub-text); font-size: 0.8rem; text-decoration: none; }
.aihub-lang img { width: 16px; height: auto; border-radius: 2px; }
.aihub-lang:hover { border-color: var(--aihub-primary); text-decoration: none; }
.aihub-lang.is-active { background: color-mix(in srgb, var(--aihub-primary) 20%, transparent); border-color: var(--aihub-primary); }

@media (max-width: 900px) {
	.aihub-shell { grid-template-columns: 1fr; }
	.aihub-rail__inner { position: static; max-height: none; }
	.aihub-rail__list { display: flex; flex-wrap: wrap; gap: 0.35rem; }
	.aihub-rail__list a { background: var(--aihub-surface-2); padding: 0.4rem 0.7rem; }
	.aihub-rail__count { display: none; }
}

/* Galleries: archive cards + single masonry */
.aihub-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.15rem; }
.aihub-gcard { position: relative; display: block; border-radius: var(--aihub-radius); overflow: hidden; border: 1px solid var(--aihub-border); text-decoration: none; aspect-ratio: 4/3; }
.aihub-gcard__img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.aihub-gcard:hover .aihub-gcard__img { transform: scale(1.05); }
.aihub-gcard__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 0.9rem; background: linear-gradient(to top, rgba(4,4,12,0.9), transparent); display: flex; flex-direction: column; }
.aihub-gcard__title { color: #fff; font-weight: 700; text-shadow: 0 1px 4px rgba(0,0,0,0.5); }
.aihub-gcard__count { color: rgba(255,255,255,0.75); font-size: 0.8rem; }
.aihub-gallery { columns: 4 200px; column-gap: 0.85rem; }
.aihub-gallery__item { display: block; margin: 0 0 0.85rem; break-inside: avoid; border-radius: 12px; overflow: hidden; border: 1px solid var(--aihub-border); }
.aihub-gallery__item img { width: 100%; display: block; transition: transform 0.3s ease; }
.aihub-gallery__item:hover img { transform: scale(1.04); }

/* "Explore by vibe" media strip */
.aihub-vibes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.85rem; }
.aihub-vibe {
	position: relative; display: block; aspect-ratio: 3/4; border-radius: 14px; overflow: hidden;
	border: 1px solid var(--aihub-border); text-decoration: none;
}
.aihub-vibe img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; display: block; }
.aihub-vibe:hover img { transform: scale(1.05); }
.aihub-vibe::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(4,4,12,0.85), transparent 55%); }
.aihub-vibe__label {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 0.6rem 0.75rem;
	color: #fff; font-weight: 700; font-size: 0.92rem; text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

/* ===================================================================== */
/*  Age gate                                                              */
/* ===================================================================== */
.aihub-agegate {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 1.25rem;
	background: color-mix(in srgb, #17110C 88%, transparent); backdrop-filter: blur(10px);
	animation: aihub-fade 0.3s ease;
}
.aihub-agegate.is-hidden { display: none !important; }
.aihub-agegate__box {
	position: relative; max-width: 448px; width: 100%; text-align: center;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	border-radius: 22px; padding: 2.5rem 2rem 2rem; box-shadow: 0 40px 90px -30px rgba(0,0,0,0.55);
	animation: aihub-pop 0.35s cubic-bezier(0.22,1,0.36,1);
}
.aihub-agegate__logo {
	width: 66px; height: 66px; margin: 0 auto 1.1rem; border-radius: 20px;
	display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.25rem; color: #fff;
	background: var(--aihub-primary); box-shadow: 0 12px 26px -12px color-mix(in srgb, var(--aihub-primary) 70%, transparent);
}
.aihub-agegate__eyebrow { display: inline-block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--aihub-primary); margin-bottom: 0.5rem; }
.aihub-agegate__box h2 { font-family: var(--aihub-display); font-weight: 600; margin: 0 0 0.6rem; font-size: 1.7rem; letter-spacing: -0.02em; }
.aihub-agegate__box p { color: var(--aihub-muted); font-size: 0.96rem; line-height: 1.6; margin: 0 auto 1.5rem; max-width: 34ch; }
.aihub-agegate__actions { display: flex; flex-direction: column; gap: 0.55rem; }
.aihub-agegate__actions .aihub-btn { width: 100%; padding: 0.85rem 1rem; font-size: 1rem; }
.aihub-agegate__links { margin-top: 1.25rem !important; font-size: 0.8rem; display: flex; gap: 0.6rem; justify-content: center; align-items: center; }
.aihub-agegate__links a { color: var(--aihub-muted); }
.aihub-agegate__links a:hover { color: var(--aihub-primary); }
@keyframes aihub-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes aihub-pop { from { opacity: 0; transform: translateY(14px) scale(0.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .aihub-agegate, .aihub-agegate__box { animation: none; } }

/* ===================================================================== */
/*  Mobile menu drawer (Kadence) → our type system + warm surface        */
/* ===================================================================== */
#mobile-drawer .drawer-inner { background: var(--aihub-surface); color: var(--aihub-text); }
#mobile-drawer .drawer-header { border-bottom: 1px solid var(--aihub-border); padding-bottom: 0.5rem; }
#mobile-drawer .menu-toggle-close { color: var(--aihub-text); }
/* id-prefixed so we out-specify Kadence's dark-drawer defaults on our light drawer */
#mobile-drawer .mobile-navigation ul li a,
#mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap {
	font-family: var(--aihub-font); font-weight: 500; color: var(--aihub-text);
	border-bottom: 1px solid var(--aihub-border-soft); padding-block: 0.9rem; transition: color 0.14s ease;
}
#mobile-drawer .mobile-navigation ul li a:hover,
#mobile-drawer .mobile-navigation ul li.current-menu-item > a { color: var(--aihub-primary); }
#mobile-drawer .mobile-navigation ul li .drawer-sub-toggle button { color: var(--aihub-muted); border-left-color: var(--aihub-border-soft); }
/* Hamburger toggle colour follows ink */
.menu-toggle-open .menu-toggle-icon, .site-header .menu-toggle .kadence-svg-iconset { color: var(--aihub-text); }

/* ===================================================================== */
/*  Global polish: scrollbar, selection, focus, motion                    */
/* ===================================================================== */
html { scroll-behavior: smooth; }
.aihub ::selection { background: color-mix(in srgb, var(--aihub-primary) 45%, transparent); color: #fff; }

/* Thin dark scrollbars */
.aihub, .aihub * { scrollbar-width: thin; scrollbar-color: var(--aihub-border) transparent; }
.aihub *::-webkit-scrollbar { width: 10px; height: 10px; }
.aihub *::-webkit-scrollbar-track { background: transparent; }
.aihub *::-webkit-scrollbar-thumb { background: var(--aihub-border); border-radius: 999px; border: 2px solid var(--aihub-bg); }
.aihub *::-webkit-scrollbar-thumb:hover { background: var(--aihub-primary); }

/* Keyboard focus for links/chips */
.aihub a:focus-visible, .aihub-chip:focus-visible, .aihub-btn:focus-visible {
	outline: 2px solid var(--aihub-accent); outline-offset: 2px; border-radius: 8px;
}

/* Breadcrumb */
.aihub-breadcrumb { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; color: var(--aihub-muted); font-size: 0.85rem; margin: 0 0 1rem; }
.aihub-breadcrumb a { color: var(--aihub-muted); }
.aihub-breadcrumb a:hover { color: var(--aihub-accent); }
.aihub-breadcrumb .sep { opacity: 0.5; }

/* Underline only genuine prose links — never embedded block cards/buttons */
.aihub-longform p a,
.aihub-longform li a { text-decoration: underline; text-underline-offset: 2px; }
.aihub-longform .aihub-card a,
.aihub-longform .aihub-btn,
.aihub-longform .aihub-cta,
.aihub-longform .aihub-chip { text-decoration: none; }

/* Cards fade/rise in on load (respect reduced motion) */
@media (prefers-reduced-motion: no-preference) {
	.aihub-grid > .aihub-card { animation: aihub-rise 0.4s cubic-bezier(0.22,1,0.36,1) both; }
	.aihub-grid > .aihub-card:nth-child(2) { animation-delay: 0.04s; }
	.aihub-grid > .aihub-card:nth-child(3) { animation-delay: 0.08s; }
	.aihub-grid > .aihub-card:nth-child(4) { animation-delay: 0.12s; }
	.aihub-grid > .aihub-card:nth-child(5) { animation-delay: 0.16s; }
	.aihub-grid > .aihub-card:nth-child(6) { animation-delay: 0.2s; }
	@keyframes aihub-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}

/* ===================================================================== */
/*  Header / nav refinement (Kadence chrome → our type system)           */
/* ===================================================================== */
.site-title, .site-branding .site-title { font-family: var(--aihub-display); font-weight: 600; letter-spacing: -0.02em; }
.header-navigation .menu > li > a,
.header-navigation ul li a { font-family: var(--aihub-font); font-weight: 500; letter-spacing: 0.005em; transition: color 0.14s ease; }
.header-navigation .menu > li > a:hover { color: var(--aihub-primary); }
/* current item gets a subtle underline mark */
.header-navigation .menu > li.current-menu-item > a,
.header-navigation .menu > li.current_page_item > a { color: var(--aihub-primary); }
/* sticky header: a hair of elevation once it detaches */
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) { box-shadow: 0 8px 30px -20px rgba(0,0,0,0.28); }

/* ===================================================================== */
/*  Archive / taxonomy editorial hero                                    */
/* ===================================================================== */
.aihub-archead { margin: 0 0 2rem; padding-bottom: 1.6rem; border-bottom: 1px solid var(--aihub-border); }
.aihub-archead h1 { font-family: var(--aihub-display); font-weight: 700; font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.08; letter-spacing: -0.025em; margin: 0 0 0.75rem; }
.aihub-archead__intro { color: var(--aihub-muted); font-size: 1.08rem; line-height: 1.6; max-width: 62ch; }
.aihub-archead__intro p { margin: 0 0 0.6rem; }
.aihub-archead__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin-top: 1.1rem; font-size: 0.82rem; font-weight: 600; }
.aihub-archead__meta span { display: inline-flex; align-items: center; color: var(--aihub-muted); }
.aihub-archead__meta span:first-child { color: var(--aihub-text); }
.aihub-archead__meta span + span::before { content: "·"; margin-right: 1rem; opacity: 0.55; }

/* ===================================================================== */
/*  Native Kadence footer widget row → our editorial styling             */
/*  (footer is Customizer-managed: Appearance → Customize → Footer)       */
/* ===================================================================== */
/* Brand column (Custom HTML widget) */
.aihub-fbrand__logo { display: block; font-family: var(--aihub-display); font-weight: 600; font-size: 1.4rem; letter-spacing: -0.02em; color: var(--aihub-text); }
.aihub-fbrand p { color: var(--aihub-muted); font-size: 0.92rem; line-height: 1.6; margin: 0.7rem 0 1rem; max-width: 34ch; }
.aihub-fbrand__badge { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--aihub-primary); background: color-mix(in srgb, var(--aihub-primary) 8%, var(--aihub-surface)); border: 1px solid color-mix(in srgb, var(--aihub-primary) 22%, transparent); border-radius: 999px; padding: 4px 11px; }

/* Footer nav-menu widgets: editorial heading + muted links */
.site-footer .footer-widget-area .widget-title,
.site-footer .footer-widget-area .widgettitle {
	font-family: var(--aihub-font); font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
	letter-spacing: 0.1em; color: var(--aihub-text); margin: 0 0 0.9rem;
}
.site-footer .footer-widget-area .menu,
.site-footer .footer-widget-area ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
.site-footer .footer-widget-area .menu a,
.site-footer .footer-widget-area li a { color: var(--aihub-muted); font-size: 0.9rem; text-decoration: none; transition: color 0.14s ease; }
.site-footer .footer-widget-area .menu a:hover,
.site-footer .footer-widget-area li a:hover { color: var(--aihub-primary); }

/* Give the brand column more room (5-col footer row) */
.site-footer-row-columns-5 .site-footer-row.ft-ro-dir-row { align-items: start; }
@media (min-width: 861px) {
	.site-bottom-footer-inner-wrap.site-footer-row-columns-5,
	.site-middle-footer-inner-wrap.site-footer-row-columns-5,
	.site-top-footer-inner-wrap.site-footer-row-columns-5 { grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; }
}

/* ===================================================================== */
/*  Night-mode engagement layer (v4): luminous single-colour accents      */
/* ===================================================================== */
/* Primary CTAs glow like neon signage — the night palette's signature */
.aihub-btn--primary, .aihub-cta {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 35%, transparent),
	            0 6px 16px -8px color-mix(in srgb, var(--aihub-primary) 40%, transparent);
}
.aihub-btn--primary:hover, .aihub-cta:hover {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 75%, transparent),
	            0 14px 38px -10px color-mix(in srgb, var(--aihub-primary) 75%, transparent);
}
/* Score rings + avatar glow softly */
.aihub-thero__ring, .aihub-spotlight__ring, .aihub-t20__ring { filter: drop-shadow(0 0 14px color-mix(in srgb, var(--aihub-primary) 35%, transparent)); }
/* Card hover: violet edge-light instead of a flat grey shadow */
.aihub-card:hover, .aihub-cat:hover, .aihub-hcard:hover, .aihub-guidecard:hover {
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 35%, transparent),
	            0 18px 44px -22px color-mix(in srgb, var(--aihub-primary) 45%, transparent);
}
/* Vibe/gallery imagery pops on night: slight lift + saturation on hover */
.aihub-vibe img, .aihub-gcard img { transition: transform 0.25s ease, filter 0.25s ease; }
.aihub-vibe:hover img, .aihub-gcard:hover img { transform: scale(1.04); filter: saturate(1.12); }
/* Sponsored/deal flags read hotter on dark */
.aihub-flag--sponsored { box-shadow: 0 0 14px -2px color-mix(in srgb, var(--aihub-warning) 55%, transparent); }

/* ===================================================================== */
/*  Hero showcase — staggered portrait collage + floating live chips     */
/* ===================================================================== */
.aihub-showcase { position: relative; display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 0.9rem; width: 100%; max-width: 520px; }
.aihub-showcase__col { display: flex; flex-direction: column; gap: 0.9rem; min-width: 0; }
.aihub-showcase__col:nth-child(1) { padding-top: 2.75rem; }
.aihub-showcase__col:nth-child(3) { padding-top: 1.5rem; }
.aihub-showcase img {
	width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 18px;
	border: 1px solid var(--aihub-border);
	box-shadow: 0 18px 40px -24px rgba(0,0,0,0.7);
}
.aihub-showcase__col--mid img { aspect-ratio: 3 / 4.6; }
/* gentle drift; stilled for reduced-motion */
.aihub-showcase__col:nth-child(1) { animation: aihub-drift 7s ease-in-out infinite; }
.aihub-showcase__col:nth-child(2) { animation: aihub-drift 8.5s ease-in-out infinite reverse; }
.aihub-showcase__col:nth-child(3) { animation: aihub-drift 7.6s ease-in-out 1.2s infinite; }
@keyframes aihub-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@media (prefers-reduced-motion: reduce) { .aihub-showcase__col { animation: none !important; } }
/* floating chips: frosted, live data */
.aihub-showcase__chip {
	position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 0.55rem;
	background: color-mix(in srgb, var(--aihub-surface) 82%, transparent);
	backdrop-filter: blur(10px);
	border: 1px solid var(--aihub-border); border-radius: 14px; padding: 0.5rem 0.75rem;
	box-shadow: 0 14px 32px -16px rgba(0,0,0,0.65);
}
.aihub-showcase__chip--app { left: -1rem; bottom: 2.2rem; }
.aihub-showcase__chip--app .aihub-avatar { width: 34px; height: 34px; border-radius: 9px; }
.aihub-showcase__chipname { display: block; font-weight: 700; font-size: 0.88rem; color: var(--aihub-text); line-height: 1.15; }
.aihub-showcase__chipsub { display: block; font-size: 0.72rem; font-weight: 600; color: var(--aihub-primary); }
.aihub-showcase__chip--count { right: -0.5rem; top: 0.9rem; font-size: 0.76rem; font-weight: 700; color: var(--aihub-text); }
@media (max-width: 900px) {
	.aihub-showcase { max-width: 420px; margin-inline: auto; }
	.aihub-showcase__chip--app { left: 0; }
	.aihub-showcase__chip--count { right: 0; }
}

/* ===================================================================== */
/*  Directory podium — top 3 by editorial score                           */
/* ===================================================================== */
.aihub-podiumwrap { margin: 0 0 1.75rem; }
.aihub-podiumwrap > .aihub-eyebrow { margin-bottom: 0.75rem; }
.aihub-podium { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.aihub-podium__item {
	position: relative; display: flex; align-items: center; gap: 0.85rem; overflow: hidden;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius);
	padding: 1.1rem 1.15rem; text-decoration: none;
	transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.aihub-podium__item:hover { transform: translateY(-3px); text-decoration: none; border-color: color-mix(in srgb, var(--aihub-primary) 45%, var(--aihub-border)); }
.aihub-podium__item--1 {
	border-color: color-mix(in srgb, var(--aihub-primary) 45%, var(--aihub-border));
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 30%, transparent), 0 18px 44px -24px color-mix(in srgb, var(--aihub-primary) 50%, transparent);
}
.aihub-podium__rank {
	position: absolute; right: 0.4rem; bottom: -1.4rem; z-index: 0; pointer-events: none;
	font-family: var(--aihub-display); font-weight: 700; font-size: 5.2rem; line-height: 1;
	color: color-mix(in srgb, var(--aihub-primary) 16%, transparent);
}
.aihub-podium__item .aihub-avatar { width: 52px; height: 52px; border-radius: 14px; flex: none; position: relative; z-index: 1; }
.aihub-podium__meta { flex: 1; min-width: 0; position: relative; z-index: 1; }
.aihub-podium__name { display: block; font-weight: 700; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-podium__best { display: block; font-size: 0.8rem; color: var(--aihub-muted); line-height: 1.35; margin-top: 0.15rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aihub-podium__score { flex: none; align-self: flex-start; font-weight: 800; font-size: 1.05rem; color: var(--aihub-primary); font-variant-numeric: tabular-nums; position: relative; z-index: 1; }
.aihub-podium__score small { font-size: 0.65em; color: var(--aihub-muted); font-weight: 600; }
@media (max-width: 860px) { .aihub-podium { grid-template-columns: 1fr; } }

/* ===================================================================== */
/*  Plugin surfaces (v4.2): promo slide-in, share bar, Kadence TOC        */
/* ===================================================================== */
/* Kadence Conversions slide-in content (labeled affiliate promo) */
.aihub-promo { display: flex; flex-direction: column; gap: 0.7rem; padding: 0.35rem; }
.aihub-promo__label { font-size: 0.64rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--aihub-muted); }
.aihub-promo__row { display: flex; align-items: center; gap: 0.7rem; }
.aihub-promo__logo { width: 44px; height: 44px; border-radius: 12px; object-fit: cover; border: 1px solid var(--aihub-border); }
.aihub-promo__meta strong { display: block; color: var(--aihub-text); font-size: 1rem; }
.aihub-promo__meta span { display: block; color: var(--aihub-muted); font-size: 0.82rem; }
.aihub-promo__actions { display: flex; gap: 0.5rem; }
.aihub-promo__actions > * { flex: 1; text-align: center; }
/* the plugin wrapper: match our night surface */
.kadence-conversion-wrap .kadence-conversion-inner {
	background: var(--aihub-surface) !important; color: var(--aihub-text);
	border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius);
	box-shadow: 0 24px 60px -24px rgba(0,0,0,0.7), 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 18%, transparent);
}

/* Share bar under articles (Kadence Simple Share) */
.aihub-sharebar { margin: 1.75rem 0 0.5rem; padding-top: 1.25rem; border-top: 1px solid var(--aihub-border); display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; }
.aihub-sharebar .aihub-eyebrow { margin-bottom: 0; }
.aihub-sharebar .kadence-simple-share li a,
.aihub-sharebar .ksst-btn {
	background: var(--aihub-surface-2) !important; color: var(--aihub-text) !important;
	border: 1px solid var(--aihub-border); border-radius: 10px;
	transition: border-color 0.14s ease, color 0.14s ease;
}
.aihub-sharebar .kadence-simple-share li a:hover { border-color: var(--aihub-primary); color: var(--aihub-primary) !important; }

/* Kadence Table of Contents on night */
.kb-table-of-content-nav { background: var(--aihub-surface); border: 1px solid var(--aihub-border) !important; border-radius: var(--aihub-radius-sm); }
.kb-table-of-content-nav .kb-table-of-contents-title { color: var(--aihub-text); font-family: var(--aihub-font); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem; }
.kb-table-of-content-nav .kb-table-of-content-list, .kb-table-of-content-nav .kb-table-of-content-list a { color: var(--aihub-muted); }
.kb-table-of-content-nav .kb-table-of-content-list a:hover { color: var(--aihub-primary); }

/* Slide-in card sizing (width normally comes from editor attrs) */
.kadence-conversion-wrap.kadence-conversion-slide_in .kadence-conversion-inner {
	width: min(400px, calc(100vw - 2rem));
	margin: 1.25rem; padding: 1.1rem 1.2rem; position: relative;
}
.kadence-conversion-wrap .kadence-conversions-close {
	color: var(--aihub-muted); font-size: 20px; line-height: 1;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 999px;
	width: 28px; height: 28px;
}
.kadence-conversion-wrap .kadence-conversions-close:hover { color: var(--aihub-text); border-color: var(--aihub-primary); }

/* ===================================================================== */
/*  UX polish layer (v4.3): wayfinding, feedback states, mobile CTA       */
/* ===================================================================== */
/* Smooth in-page scrolling (TOC, anchors) with sticky-header clearance */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.aihub h2[id], .aihub h3[id], .aihub [id^="kb-"] { scroll-margin-top: 110px; }

/* FacetWP feedback: fade the grid while filtering, spinner-free */
.facetwp-template { transition: opacity 0.18s ease; }
.facetwp-template.facetwp-is-loading, .facetwp-loading ~ .facetwp-template { opacity: 0.35; pointer-events: none; }
/* Pure-CSS empty state when filters match nothing */
.facetwp-template:empty { display: block; min-height: 120px; }
.facetwp-template:empty::after {
	content: "No apps match those filters. Try removing one or two.";
	display: flex; align-items: center; justify-content: center; min-height: 120px;
	color: var(--aihub-muted); font-size: 0.95rem;
	border: 1px dashed var(--aihub-border); border-radius: var(--aihub-radius);
}

/* Back to top */
.aihub-top {
	position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 900;
	width: 44px; height: 44px; border-radius: 12px; cursor: pointer;
	background: var(--aihub-surface); color: var(--aihub-text);
	border: 1px solid var(--aihub-border); font-size: 1.1rem; line-height: 1;
	box-shadow: 0 14px 34px -16px rgba(0,0,0,0.6);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s, border-color 0.14s ease;
}
.aihub-top.is-on { opacity: 1; visibility: visible; transform: none; }
.aihub-top:hover { border-color: var(--aihub-primary); color: var(--aihub-primary); }

/* Mobile sticky CTA bar on single tool pages */
.aihub-mcta {
	display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 950;
	align-items: center; gap: 0.8rem; padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
	background: color-mix(in srgb, var(--aihub-surface) 92%, transparent); backdrop-filter: blur(12px);
	border-top: 1px solid var(--aihub-border);
}
.aihub-mcta__meta { flex: 1; min-width: 0; }
.aihub-mcta__name { display: block; font-weight: 700; font-size: 0.95rem; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-mcta__score { display: block; font-size: 0.74rem; color: var(--aihub-muted); }
.aihub-mcta__score small { font-size: inherit; }
.aihub-mcta .aihub-cta { flex: none; padding: 0.65rem 1.4rem; }
@media (max-width: 960px) {
	.aihub-mcta { display: flex; }
	.aihub--tool .aihub-wrap { padding-bottom: 6.5rem; }
	/* Keep back-to-top clear of the CTA bar. The button prints in wp_footer
	   (outside <main>), so target via the body class — the old main-sibling
	   selector never matched and the buttons overlapped. */
	.single-tool .aihub-top { bottom: 5.75rem; }
	/* Comfortable thumb targets (chips measured 37px; ~44px is the floor) */
	.aihub-chip { padding: 0.6rem 1rem; }
	.aihub-jumpnav a { padding: 0.55rem 0.95rem; }
}

/* 404 + search results */
.aihub-404__head { max-width: 640px; margin: 1rem auto 3rem; text-align: center; }
.aihub-404__head h1 { font-family: var(--aihub-display); font-weight: 700; font-size: clamp(2rem, 5vw, 3rem); letter-spacing: -0.025em; margin: 0.25rem 0 0.75rem; }
.aihub-404__head p { color: var(--aihub-muted); font-size: 1.05rem; line-height: 1.6; margin: 0 0 1.5rem; }
.aihub-404__head .aihub-hero__ctas { margin-top: 1rem; }
.aihub-search__count { margin: -1rem 0 1.5rem; font-size: 0.9rem; font-weight: 600; color: var(--aihub-muted); }
.aihub-search__empty { padding: 1.5rem; margin-bottom: 1.5rem; border: 1px dashed var(--aihub-border); border-radius: var(--aihub-radius); color: var(--aihub-muted); text-align: center; }

/* ===================================================================== */
/*  Compare tray + recently viewed (v4.4)                                 */
/* ===================================================================== */
/* Card toggle: compact icon button; violet when selected */
.aihub-compare-toggle {
	flex: none !important; min-width: 40px; width: 40px; padding: 0.55rem 0;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid var(--aihub-border); border-radius: 10px; cursor: pointer;
	background: transparent; color: var(--aihub-muted); font-size: 0.95rem; line-height: 1;
	transition: border-color 0.14s ease, color 0.14s ease, background 0.14s ease;
}
.aihub-compare-toggle:hover { border-color: var(--aihub-primary); color: var(--aihub-primary); }
.aihub-compare-toggle.is-active { background: var(--aihub-primary); border-color: var(--aihub-primary); color: #fff; }

/* Floating tray */
.aihub-tray {
	position: fixed; left: 50%; bottom: 1.25rem; z-index: 960;
	transform: translate(-50%, 12px); opacity: 0; visibility: hidden;
	display: flex; align-items: center; gap: 0.7rem; max-width: calc(100vw - 2rem);
	padding: 0.6rem 0.8rem;
	background: color-mix(in srgb, var(--aihub-surface) 92%, transparent); backdrop-filter: blur(12px);
	border: 1px solid var(--aihub-border); border-radius: 16px;
	box-shadow: 0 24px 60px -24px rgba(0,0,0,0.7), 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 16%, transparent);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.aihub-tray.is-on { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.aihub-tray__label { flex: none; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--aihub-muted); }
.aihub-tray__count { color: var(--aihub-primary); }
.aihub-tray__chips { display: flex; gap: 0.4rem; overflow-x: auto; }
.aihub-tray__chip {
	flex: none; display: inline-flex; align-items: center; gap: 0.4rem; cursor: pointer;
	padding: 0.35rem 0.6rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600;
	background: var(--aihub-surface-2); color: var(--aihub-text); border: 1px solid var(--aihub-border);
}
.aihub-tray__chip i { font-style: normal; color: var(--aihub-muted); }
.aihub-tray__chip:hover { border-color: var(--aihub-danger); }
.aihub-tray__chip:hover i { color: var(--aihub-danger); }
.aihub-tray__go { flex: none; padding: 0.5rem 1rem; font-size: 0.9rem; }
.aihub-tray__go.is-disabled { opacity: 0.45; cursor: not-allowed; filter: saturate(0.4); }
.aihub-tray__clear { flex: none; background: none; border: none; cursor: pointer; color: var(--aihub-muted); font-size: 1.1rem; line-height: 1; padding: 0.3rem; }
.aihub-tray__clear:hover { color: var(--aihub-danger); }
/* keep clear of the mobile CTA bar on single-tool pages */
@media (max-width: 960px) { .single-tool .aihub-tray { bottom: 5.5rem; } }

/* Recently viewed strip */
.aihub-recent { margin: var(--sp-6) 0 0; padding-top: 1.5rem; border-top: 1px solid var(--aihub-border); }
.aihub-recent > .aihub-eyebrow { margin-bottom: 0.9rem; }
.aihub-recent__list { display: flex; gap: 0.75rem; overflow-x: auto; padding-bottom: 0.25rem; }
.aihub-recent__item {
	flex: none; display: flex; align-items: center; gap: 0.6rem; min-width: 0; max-width: 240px;
	padding: 0.55rem 0.85rem 0.55rem 0.55rem; border-radius: 12px; text-decoration: none;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	transition: border-color 0.14s ease, transform 0.14s ease;
}
.aihub-recent__item:hover { border-color: color-mix(in srgb, var(--aihub-primary) 45%, var(--aihub-border)); transform: translateY(-2px); text-decoration: none; }
.aihub-recent__item img, .aihub-recent__ph { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; flex: none; }
.aihub-recent__ph { display: inline-flex; align-items: center; justify-content: center; background: var(--aihub-primary); color: #fff; font-weight: 800; }
.aihub-recent__name { font-size: 0.88rem; font-weight: 650; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-recent__score { flex: none; font-size: 0.78rem; font-weight: 700; color: var(--aihub-primary); font-variant-numeric: tabular-nums; }

/* Compare page: 2-3 selected cards side by side */
.aihub-compare-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* ===================================================================== */
/*  UX v4.5: in-page jump nav, mobile filters, coupon box, rail order     */
/* ===================================================================== */
/* Tool-page quick nav: sticky chip row; horizontal scroll on small screens */
.aihub-jumpnav {
	position: sticky; top: 0; z-index: 20;
	display: flex; gap: 0.4rem; overflow-x: auto; scrollbar-width: none;
	margin: 1.25rem 0 0; padding: 0.6rem 0.15rem;
	background: color-mix(in srgb, var(--aihub-bg) 88%, transparent); backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--aihub-border-soft);
}
.aihub-jumpnav::-webkit-scrollbar { display: none; }
.aihub-jumpnav a {
	flex: none; padding: 0.38rem 0.85rem; border-radius: 999px; font-size: 0.82rem; font-weight: 600;
	color: var(--aihub-muted); background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	text-decoration: none; transition: color 0.14s ease, border-color 0.14s ease;
}
.aihub-jumpnav a:hover { color: var(--aihub-primary); border-color: var(--aihub-primary); text-decoration: none; }
.aihub-panel[id] { scroll-margin-top: 120px; }

/* "How we score" trust link on the hero scorecard */
.aihub-thero__how { display: inline-block; margin-top: 0.35rem; font-size: 0.78rem; font-weight: 600; color: var(--aihub-primary); }

/* Coupon box in the sticky visit card */
.aihub-couponbox {
	display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.8rem; padding: 0.55rem 0.65rem;
	border: 1px dashed color-mix(in srgb, var(--aihub-success) 55%, var(--aihub-border));
	border-radius: 10px; background: color-mix(in srgb, var(--aihub-success) 8%, var(--aihub-surface));
}
.aihub-couponbox__label { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--aihub-success); }
.aihub-couponbox__code { flex: 1; font-weight: 700; color: var(--aihub-text); background: none; text-align: left; overflow: hidden; text-overflow: ellipsis; }
.aihub-couponbox__copy {
	flex: none; cursor: pointer; padding: 0.3rem 0.7rem; border-radius: 8px; font-size: 0.78rem; font-weight: 700;
	background: var(--aihub-success); color: #04120b; border: none;
}
.aihub-couponbox__copy:hover { filter: brightness(1.08); }

/* Mobile filters toggle: hidden on desktop, gate on mobile */
.aihub-filtertoggle { display: none; }
@media (max-width: 960px) {
	.aihub-filtertoggle {
		display: flex; align-items: center; justify-content: space-between; width: 100%;
		margin: 0 0 0.9rem; padding: 0.8rem 1rem; cursor: pointer;
		background: var(--aihub-surface); color: var(--aihub-text);
		border: 1px solid var(--aihub-border); border-radius: 12px; font-weight: 700; font-size: 0.95rem;
	}
	.aihub-filtertoggle.is-open span { transform: rotate(180deg); }
	.aihub-filtertoggle span { transition: transform 0.15s ease; }
	.aihub-facets { display: none; }
	.aihub-facets.is-open { display: block; }
	/* Browse pages: content first, discovery rail after (was burying the grid).
	   align-items:start from the desktop grid rule would otherwise carry into
	   this column flexbox and size children to max-content — content gets cut
	   at the viewport edge. Stretch is essential here. */
	.aihub-shell { display: flex; flex-direction: column; align-items: stretch; }
	.aihub-shell .aihub-rail { order: 2; width: 100%; min-width: 0; }
	.aihub-shell__main { order: 1; width: 100%; min-width: 0; }
}

/* ===================================================================== */
/*  Hero marquee (v5): infinite downward tools carousel                  */
/* ===================================================================== */
.aihub-marquee {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem;
	width: 100%; max-width: 480px; height: 440px; overflow: hidden;
	-webkit-mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
	mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
}
.aihub-mq__col { overflow: hidden; }
.aihub-mq__track { display: flex; flex-direction: column; gap: 0.9rem; animation: aihub-mq-up 28s linear infinite; }
.aihub-mq__col--2 .aihub-mq__track { animation-name: aihub-mq-down; animation-duration: 36s; animation-delay: -9s; }
.aihub-mq__dup { display: flex; flex-direction: column; gap: 0.9rem; margin-top: 0.9rem; }
/* downward: start with the duplicate half above, slide to natural position */
@keyframes aihub-mq-down { from { transform: translateY(-50%); } to { transform: translateY(0); } }
@keyframes aihub-mq-up { from { transform: translateY(0); } to { transform: translateY(-50%); } }
.aihub-marquee:hover .aihub-mq__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .aihub-mq__track { animation: none !important; } }

.aihub-mq__card {
	display: flex; align-items: center; gap: 0.65rem; flex: none;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 14px;
	padding: 0.7rem 0.8rem; text-decoration: none;
	transition: border-color 0.15s ease;
}
.aihub-mq__card:hover { border-color: color-mix(in srgb, var(--aihub-primary) 50%, var(--aihub-border)); text-decoration: none; }
.aihub-mq__card .aihub-avatar { width: 40px; height: 40px; border-radius: 10px; flex: none; }
.aihub-mq__meta { flex: 1; min-width: 0; }
.aihub-mq__name { display: block; font-weight: 650; font-size: 0.86rem; color: var(--aihub-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-mq__cat { display: block; font-size: 0.68rem; color: var(--aihub-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aihub-mq__score { flex: none; font-size: 0.8rem; font-weight: 800; color: var(--aihub-primary); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
	.aihub-marquee { max-width: 420px; height: 300px; margin-inline: auto; }
}

/* ===================================================================== */
/*  Ambient live elements (v5.2): sparks, dot grid, live dot             */
/* ===================================================================== */
/* Floating brand sparks — 4-point stars (the favicon mark), drifting     */
.aihub-sparks { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.aihub-spark {
	position: absolute; display: block;
	width: var(--sz, 14px); height: var(--sz, 14px);
	left: var(--x, 50%); top: var(--y, 50%);
	background: var(--spark, var(--aihub-primary));
	clip-path: polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
	opacity: var(--op, 0.5);
	animation: aihub-spark-drift var(--dur, 9s) ease-in-out var(--del, 0s) infinite,
	           aihub-spark-twinkle calc(var(--dur, 9s) / 2.6) ease-in-out var(--del, 0s) infinite;
}
.aihub-spark--1 { --x: 6%;  --y: 22%; --sz: 16px; --dur: 10s; --del: 0s;    --op: 0.55; }
.aihub-spark--2 { --x: 16%; --y: 70%; --sz: 10px; --dur: 12s; --del: -3s;   --op: 0.4; }
.aihub-spark--3 { --x: 42%; --y: 12%; --sz: 8px;  --dur: 9s;  --del: -5s;   --op: 0.35; }
.aihub-spark--4 { --x: 55%; --y: 82%; --sz: 12px; --dur: 13s; --del: -7s;   --op: 0.45; }
.aihub-spark--5 { --x: 88%; --y: 18%; --sz: 18px; --dur: 11s; --del: -2s;   --op: 0.5; filter: blur(1px); }
.aihub-spark--6 { --x: 94%; --y: 64%; --sz: 9px;  --dur: 14s; --del: -9s;   --op: 0.35; filter: blur(0.5px); }
.aihub-spark--7 { --x: 30%; --y: 45%; --sz: 7px;  --dur: 12s; --del: -6s;   --op: 0.3; }
.aihub-spark--8 { --x: 72%; --y: 40%; --sz: 11px; --dur: 10s; --del: -4s;   --op: 0.4; }
@keyframes aihub-spark-drift {
	0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
	50%      { transform: translate3d(8px, -18px, 0) rotate(45deg); }
}
@keyframes aihub-spark-twinkle {
	0%, 100% { opacity: var(--op, 0.5); }
	50%      { opacity: calc(var(--op, 0.5) * 0.35); }
}
@media (prefers-reduced-motion: reduce) { .aihub-spark { animation: none; } }

/* Hero backdrop: faint dot grid, fading toward the content */
.aihub-hero--split { position: relative; }
.aihub-hero--split::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
	background-image: radial-gradient(color-mix(in srgb, var(--aihub-primary) 26%, transparent) 1px, transparent 1.5px);
	background-size: 26px 26px;
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent 82%);
	mask-image: linear-gradient(to bottom, #000, transparent 82%);
	opacity: 0.5;
}
.aihub-hero--split .aihub-hero__grid { position: relative; z-index: 1; }

/* CTA bands: white sparks over the solid primary */
.aihub-band { position: relative; overflow: hidden; }
.aihub-band .aihub-spark { --spark: rgba(255,255,255,0.75); }
.aihub-band > div, .aihub-band > a { position: relative; z-index: 1; }

/* Leaderboard "live" pulse dot */
.aihub-t20__title { display: inline-flex; align-items: center; gap: 0.45rem; }
.aihub-t20__title::after {
	content: ""; width: 8px; height: 8px; border-radius: 50%; flex: none;
	background: var(--aihub-success);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--aihub-success) 60%, transparent);
	animation: aihub-live 2.4s ease-out infinite;
}
@keyframes aihub-live {
	0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--aihub-success) 55%, transparent); }
	70%  { box-shadow: 0 0 0 9px transparent; }
	100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) { .aihub-t20__title::after { animation: none; } }

/* ===================================================================== */
/*  Scroll choreography (v5.3): reveal, stagger, micro-interactions       */
/* ===================================================================== */
/* Hidden state is applied BY JS only (never in markup), so content is
   always visible when scripts are blocked. */
.aihub-reveal {
	opacity: 0;
	transform: translateY(16px);
}
/* transition lives on the TARGET state: hiding is instant, revealing animates */
.aihub-reveal.is-inview {
	opacity: 1; transform: none;
	transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--ri, 0) * 70ms);
}
/* keep hover transforms working after reveal */
.aihub-reveal.is-inview:hover { transition-delay: 0ms; }

/* Kicker line grows in when its section reveals */
.aihub-section .aihub-shead__eyebrow::before { width: 0; transition: width 0.5s ease 0.15s; }
.aihub-section.is-inview .aihub-shead__eyebrow::before,
.aihub-section:not(.aihub-reveal) .aihub-shead__eyebrow::before { width: 22px; }

/* Primary CTA sheen sweep on hover (single white overlay, no gradient hue) */
.aihub-btn--primary, .aihub-cta { position: relative; overflow: hidden; }
.aihub-btn--primary::after, .aihub-cta::after {
	content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
	background: rgba(255, 255, 255, 0.22);
	transform: skewX(-20deg);
	transition: left 0.45s ease;
	pointer-events: none;
}
.aihub-btn--primary:hover::after, .aihub-cta:hover::after { left: 120%; }
@media (prefers-reduced-motion: reduce) {
	.aihub-reveal { opacity: 1; transform: none; transition: none; }
	.aihub-btn--primary::after, .aihub-cta::after { display: none; }
}

/* Card logo lift on card hover */
.aihub-card .aihub-avatar { transition: transform 0.2s ease; }
.aihub-card:hover .aihub-avatar { transform: scale(1.06) rotate(-2deg); }

/* ===================================================================== */
/*  Mobile responsive pass (v5.4)                                        */
/* ===================================================================== */
@media (max-width: 900px) {
	/* marquee under the copy: shorter, tighter cards, hide category line */
	.aihub-marquee { height: 250px; margin-top: 0.5rem; }
	.aihub-mq__card { padding: 0.55rem 0.6rem; gap: 0.5rem; }
	.aihub-mq__card .aihub-avatar { width: 32px; height: 32px; }
	.aihub-mq__cat { display: none; }
	.aihub-mq__name { font-size: 0.82rem; }
	/* single-tool hero score card centres in the stacked column */
	.aihub-thero__card { margin-inline: auto; width: 100%; }
}
/* search input must be allowed to shrink inside its flex row */
.aihub-hero__search input[type="search"] { min-width: 0; }

/* Imported long-form content: media + tables must respect the viewport */
.aihub-longform img { max-width: 100%; height: auto; }
.aihub-longform video { max-width: 100%; height: auto; }
.aihub-longform figure { max-width: 100%; margin-inline: 0; }
.aihub-longform table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.aihub-longform iframe { max-width: 100%; }
/* Imported Kadence galleries: never exceed the article column */
.aihub-longform [class*="kb-gallery"] { max-width: 100%; }
.aihub-longform .kb-gallery-item, .aihub-longform .kb-gallery-image-contain { max-width: 100%; }

/* ===================================================================== */
/*  Filter panel v5.5: labeled groups, tidy checkbox rows                */
/* ===================================================================== */
.aihub-facets__row { align-items: start; }
.aihub-facets__glabel { display: block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: var(--aihub-primary); margin-bottom: 0.55rem; }
/* choice lists: single tidy column, scroll past 6 rows */
.aihub-facets__group .facetwp-facet { max-height: 216px; overflow-y: auto; scrollbar-width: thin; padding-right: 4px; }
.aihub-facets__group .facetwp-checkbox,
.aihub-facets__group .facetwp-radio {
	display: flex !important; align-items: center; gap: 0.5rem;
	padding: 0.3rem 0.1rem; margin: 0; background-position: left center;
	font-size: 0.88rem; line-height: 1.3; color: var(--aihub-text);
	border-radius: 8px;
}
.aihub-facets__group .facetwp-checkbox:hover,
.aihub-facets__group .facetwp-radio:hover { background-color: var(--aihub-surface-2); }
.aihub-facets__group .facetwp-counter { margin-left: auto; font-size: 0.74rem; color: var(--aihub-muted); font-variant-numeric: tabular-nums; }
/* slider group */
.aihub-facets__group .facetwp-slider-wrap { margin-top: 0.4rem; }
.aihub-facets__group .facetwp-slider-label { display: block; margin-top: 0.5rem; font-size: 0.85rem; font-weight: 600; color: var(--aihub-muted); font-variant-numeric: tabular-nums; }
/* bar: sort + selections aligned */
.aihub-facets__bar .facetwp-facet { margin: 0; }
.aihub-facets__bar select {
	background: var(--aihub-surface-2); color: var(--aihub-text);
	border: 1px solid var(--aihub-border); border-radius: 10px; padding: 0.5rem 0.8rem; font-size: 0.9rem;
}
.aihub-facets .facetwp-reset, .aihub-facets button.facetwp-btn {
	background: transparent; color: var(--aihub-muted); border: 1px solid var(--aihub-border);
	border-radius: 10px; padding: 0.45rem 0.9rem; font-size: 0.85rem; cursor: pointer;
}
.aihub-facets .facetwp-reset:hover { color: var(--aihub-danger); border-color: var(--aihub-danger); }
@media (max-width: 960px) {
	.aihub-facets__row { grid-template-columns: 1fr 1fr; gap: 1rem; }
}
@media (max-width: 560px) {
	.aihub-facets__row { grid-template-columns: 1fr; }
}

/* ===================================================================== */
/*  Editorial archive cards (v5.6)                                       */
/* ===================================================================== */
.aihub-pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.25rem; }
.aihub-pcard {
	display: flex; flex-direction: column; overflow: hidden; text-decoration: none;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: var(--aihub-radius);
	transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.aihub-pcard:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--aihub-primary) 40%, var(--aihub-border)); box-shadow: 0 16px 40px -22px color-mix(in srgb, var(--aihub-primary) 40%, transparent); text-decoration: none; }
.aihub-pcard__media { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--aihub-surface-2); overflow: hidden; }
.aihub-pcard__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 0.25s ease; }
.aihub-pcard:hover .aihub-pcard__media img { transform: scale(1.04); }
.aihub-pcard__tag {
	position: absolute; left: 10px; top: 10px; padding: 3px 9px; border-radius: 999px;
	font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
	background: color-mix(in srgb, var(--aihub-bg) 78%, transparent); backdrop-filter: blur(6px); color: var(--aihub-text);
	border: 1px solid var(--aihub-border);
}
.aihub-pcard__body { display: flex; flex-direction: column; gap: 0.4rem; padding: 1.1rem 1.2rem 1.25rem; }
.aihub-pcard__date { font-size: 0.74rem; color: var(--aihub-muted); }
.aihub-pcard__title { margin: 0; font-size: 1.12rem; line-height: 1.3; letter-spacing: -0.01em; color: var(--aihub-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aihub-pcard:hover .aihub-pcard__title { color: var(--aihub-accent); }
.aihub-pcard__deck { font-size: 0.88rem; line-height: 1.5; color: var(--aihub-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.aihub-pcard__more { margin-top: 0.35rem; font-size: 0.82rem; font-weight: 700; color: var(--aihub-primary); }

/* ===================================================================== */
/*  Gravity Forms on the night theme (labels were dark-on-dark)           */
/* ===================================================================== */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label,
.gform_wrapper label.gfield_label { color: var(--aihub-text) !important; font-weight: 600; font-size: 0.95rem; }
.gform_wrapper .gfield_required, .gform_wrapper .gfield_required_text { color: var(--aihub-secondary) !important; font-size: 0.8em; }
.gform_wrapper .gfield_description,
.gform_wrapper .gform_fileupload_rules,
.gform_wrapper .ginput_counter,
.gform_wrapper .gfield_char_counter { color: var(--aihub-muted) !important; font-size: 0.8rem !important; }
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
	background: var(--aihub-surface-2) !important; color: var(--aihub-text) !important;
	border: 1px solid var(--aihub-border) !important; border-radius: 10px !important;
	padding: 0.65rem 0.85rem !important; font-family: var(--aihub-font);
}
.gform_wrapper input:focus, .gform_wrapper textarea:focus, .gform_wrapper select:focus {
	outline: none !important; border-color: color-mix(in srgb, var(--aihub-primary) 60%, var(--aihub-border)) !important;
	box-shadow: var(--aihub-ring) !important;
}
.gform_wrapper ::placeholder { color: var(--aihub-muted); opacity: 0.7; }
.gform_wrapper .gform_button, .gform_wrapper input[type="submit"] {
	background: var(--aihub-primary) !important; color: #fff !important; border: none !important;
	border-radius: 12px !important; padding: 0.75rem 1.6rem !important; font-weight: 650 !important; cursor: pointer;
}
.gform_wrapper .gform_button:hover { filter: brightness(1.08); }
.gform_wrapper .gfield_checkbox label, .gform_wrapper .gfield_radio label { color: var(--aihub-text) !important; }
.gform_wrapper .gform_validation_errors, .gform_wrapper .gfield_validation_message {
	background: color-mix(in srgb, var(--aihub-danger) 12%, var(--aihub-surface)) !important;
	border: 1px solid color-mix(in srgb, var(--aihub-danger) 40%, transparent) !important;
	color: var(--aihub-text) !important; border-radius: 10px;
}

/* Kadence TOC: compact — 2 columns on wide screens, capped height, small type */
.kb-table-of-content-nav { max-width: 100%; }
.kb-table-of-content-nav .kb-table-of-content-wrap { padding: 0.9rem 1.1rem !important; }
/* NOTE: never combine column-count with max-height here — CSS multicol lays
   overflow into EXTRA COLUMNS SIDEWAYS (hundreds of px past the viewport on
   mobile). Height-capped vertical scroll only. Imported TOCs carry the
   .wp-block-kadence-tableofcontents class WITHOUT .kb-table-of-content-nav,
   so both roots must be targeted. */
.kb-table-of-content-nav .kb-table-of-content-list,
.wp-block-kadence-tableofcontents .kb-table-of-content-list {
	font-size: 0.84rem !important; line-height: 1.45; margin: 0;
	max-height: 240px; overflow-y: auto; scrollbar-width: thin;
	/* Kadence's -columns-N classes keep this a multicol container even at 1
	   column — with a height cap that overflows sideways. Kill multicol. */
	columns: auto !important; column-count: auto !important; column-width: auto !important;
}
.kb-table-of-content-nav .kb-table-of-content-list li,
.wp-block-kadence-tableofcontents .kb-table-of-content-list li { margin: 0 0 0.3rem !important; }
@media (max-width: 640px) {
	.kb-table-of-content-nav .kb-table-of-content-list,
	.wp-block-kadence-tableofcontents .kb-table-of-content-list { max-height: 200px; }
}

/* ===================================================================== */
/*  Imported content: source-site palette classes → our night tokens      */
/*  (their palette-7/8/9 were light; ours are dark surfaces = invisible)  */
/* ===================================================================== */
.aihub-longform .has-theme-palette-7-color,
.aihub-longform .has-theme-palette-8-color,
.aihub-longform .has-theme-palette-9-color,
.aihub-longform .has-theme-palette7-color,
.aihub-longform .has-theme-palette8-color,
.aihub-longform .has-theme-palette9-color { color: var(--aihub-text) !important; }
.aihub-longform .has-theme-palette-5-color,
.aihub-longform .has-theme-palette-6-color { color: var(--aihub-muted) !important; }
/* leftover rows whose background-image CSS was stripped: collapse cleanly */
.aihub-longform .kt-inside-inner-col:empty { display: none; }
.aihub-longform .kt-row-column-wrap,
.aihub-longform .kt-inside-inner-col { min-height: 0 !important; }
/* their inline link colors can also be dark — normalise longform links */
.aihub-longform p a, .aihub-longform li a { color: var(--aihub-accent); }

/* ===================================================================== */
/*  Longform beautify (v5.7): images, sections, buttons, lists           */
/* ===================================================================== */
/* Images: rounded, bordered, centred figures with breathing room */
.aihub-longform img { border-radius: 14px; border: 1px solid var(--aihub-border); }
.aihub-longform figure.wp-block-image { margin: 1.75rem auto; text-align: center; }
.aihub-longform figure.wp-block-image figcaption { font-size: 0.8rem; color: var(--aihub-muted); margin-top: 0.5rem; }
.aihub-longform .aligncenter { margin-left: auto; margin-right: auto; }

/* Imported Kadence row sections read as panel boxes */
.aihub-longform .wp-block-kadence-rowlayout > .kt-row-column-wrap {
	background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	border-radius: var(--aihub-radius); padding: 1.4rem 1.5rem; margin: 1.75rem 0;
}
.aihub-longform .wp-block-kadence-rowlayout .wp-block-kadence-rowlayout > .kt-row-column-wrap { border: none; background: transparent; padding: 0; margin: 0; }
.aihub-longform .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > :first-child { margin-top: 0; }
.aihub-longform .kt-row-column-wrap > .wp-block-kadence-column > .kt-inside-inner-col > :last-child { margin-bottom: 0; }

/* Kadence icon lists: clean check bullets (their per-post CSS is gone) */
.aihub-longform .kt-svg-icon-list-items ul, .aihub-longform ul.kt-svg-icon-list { list-style: none; padding-left: 0; }
.aihub-longform .kt-svg-icon-list-item-wrap { display: flex; align-items: flex-start; gap: 0.55rem; margin-bottom: 0.5rem; }
.aihub-longform .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single { flex: none; color: var(--aihub-primary); }
.aihub-longform .kt-svg-icon-list-item-wrap svg { width: 18px; height: 18px; }
.aihub-longform mark.kt-highlight { background: none; color: var(--aihub-primary); font-weight: 650; }

/* Buttons inside content: our primary CTA look */
.aihub-longform .wp-block-button__link,
.aihub-longform .kb-button,
.aihub-longform .kt-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
	background: var(--aihub-primary) !important; color: #fff !important;
	border-radius: 12px !important; padding: 0.75rem 1.5rem !important;
	font-weight: 650; text-decoration: none !important; border: none !important;
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--aihub-primary) 35%, transparent), 0 6px 16px -8px color-mix(in srgb, var(--aihub-primary) 40%, transparent);
}
.aihub-longform .wp-block-button__link:hover, .aihub-longform .kb-button:hover { filter: brightness(1.08); }
.aihub-longform .wp-block-buttons, .aihub-longform .wp-block-kadence-advancedbtn { margin: 1.5rem 0; text-align: center; }

/* Misc rhythm */
.aihub-longform h2 { margin-top: 2.5rem; }
.aihub-longform h3 { margin-top: 1.75rem; }
.aihub-longform hr { border: none; border-top: 1px solid var(--aihub-border); margin: 2.25rem 0; }
.aihub-longform blockquote { border-left: 3px solid var(--aihub-primary); margin: 1.5rem 0; padding: 0.5rem 0 0.5rem 1.25rem; color: var(--aihub-muted); }

/* Card-shaped anchors: never underline their contents on hover.
   (.aihub a:hover carries an element selector, so it out-specified the
   individual card :hover rules — this list restores intent.) */
.aihub a.aihub-pcard:hover,
.aihub a.aihub-feed__item:hover,
.aihub a.aihub-hcard:hover,
.aihub a.aihub-cat:hover,
.aihub a.aihub-vibe:hover,
.aihub a.aihub-gcard:hover,
.aihub a.aihub-recent__item:hover,
.aihub a.aihub-mq__card:hover,
.aihub a.aihub-podium__item:hover,
.aihub a.aihub-t20__row:hover,
.aihub a.aihub-t20__featured:hover,
.aihub a.aihub-guidecard:hover,
.aihub a.aihub-winner__actions:hover,
.aihub a.aihub-arthero__toolname:hover { text-decoration: none; }

/* ------------------------------------------------------------------ */
/* Companion Guide — floating AI chat assistant (bottom-left)          */
/* ------------------------------------------------------------------ */
.aihub-chatbtn {
	position: fixed; left: 1.25rem; bottom: 1.25rem; z-index: 965;
	width: 54px; height: 54px; border-radius: 50%; border: none; cursor: pointer;
	display: grid; place-items: center; background: var(--aihub-primary); color: #fff;
	box-shadow: 0 10px 28px -10px color-mix(in srgb, var(--aihub-primary) 70%, transparent);
	transition: transform 0.2s ease, background 0.2s ease;
}
.aihub-chatbtn:hover { background: var(--aihub-accent); transform: translateY(-2px); }
.aihub-chatbtn:focus-visible { outline: none; box-shadow: var(--aihub-ring); }
.aihub-chatbtn__x { display: none; }
.aihub-chatbtn.is-open .aihub-chatbtn__ico { display: none; }
.aihub-chatbtn.is-open .aihub-chatbtn__x { display: block; }
.aihub-chatbtn__dot {
	position: absolute; top: 3px; right: 3px; width: 11px; height: 11px; border-radius: 50%;
	background: var(--aihub-success); border: 2px solid var(--aihub-bg);
	animation: aihub-chat-pulse 2.2s ease-out infinite;
}
.aihub-chatbtn.is-open .aihub-chatbtn__dot { display: none; }
@keyframes aihub-chat-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--aihub-success) 45%, transparent); }
	70%, 100% { box-shadow: 0 0 0 9px transparent; }
}

.aihub-chat {
	position: fixed; left: 1.25rem; bottom: 5.5rem; z-index: 970;
	width: min(372px, calc(100vw - 2rem));
	max-height: min(560px, calc(100dvh - 7.5rem));
	display: flex; flex-direction: column; overflow: hidden;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	border-radius: var(--aihub-radius); box-shadow: var(--aihub-shadow-lift);
	opacity: 0; visibility: hidden; transform: translateY(12px) scale(0.98);
	transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}
.aihub-chat.is-open { opacity: 1; visibility: visible; transform: none; }

.aihub-chat__head {
	display: flex; align-items: center; gap: 0.65rem; padding: 0.8rem 1rem;
	background: var(--aihub-surface-2); border-bottom: 1px solid var(--aihub-border);
}
.aihub-chat__ava {
	flex: none; width: 34px; height: 34px; border-radius: 50%;
	display: grid; place-items: center; background: var(--aihub-primary); color: #fff;
}
.aihub-chat__title { display: flex; flex-direction: column; min-width: 0; }
.aihub-chat__title strong { font-family: var(--aihub-display); font-size: 0.95rem; letter-spacing: 0.01em; }
.aihub-chat__title em { font-style: normal; font-size: 0.72rem; color: var(--aihub-muted); display: flex; align-items: center; gap: 0.35rem; }
.aihub-chat__live { width: 7px; height: 7px; border-radius: 50%; background: var(--aihub-success); animation: aihub-chat-pulse 2.2s ease-out infinite; }
.aihub-chat__close {
	margin-left: auto; background: none; border: none; cursor: pointer;
	color: var(--aihub-muted); font-size: 1.45rem; line-height: 1; padding: 0.2rem 0.35rem;
}
.aihub-chat__close:hover { color: var(--aihub-text); }

.aihub-chat__msgs {
	flex: 1; min-height: 200px; overflow-y: auto; overscroll-behavior: contain;
	display: flex; flex-direction: column; gap: 0.6rem; padding: 1rem;
}
.aihub-chat__msg {
	max-width: 86%; padding: 0.6rem 0.85rem; border-radius: 14px;
	font-size: 0.9rem; line-height: 1.5; overflow-wrap: break-word;
}
.aihub-chat__msg--bot {
	align-self: flex-start; border-bottom-left-radius: 4px;
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); color: var(--aihub-text);
}
.aihub-chat__msg--user {
	align-self: flex-end; border-bottom-right-radius: 4px;
	background: var(--aihub-primary); color: #fff;
}
.aihub-chat__typing { display: flex; gap: 4px; align-items: center; padding: 0.75rem 0.9rem; }
.aihub-chat__typing i {
	width: 6px; height: 6px; border-radius: 50%; background: var(--aihub-muted);
	animation: aihub-chat-bounce 1.1s ease-in-out infinite;
}
.aihub-chat__typing i:nth-child(2) { animation-delay: 0.15s; }
.aihub-chat__typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes aihub-chat-bounce { 0%, 60%, 100% { transform: none; opacity: 0.5; } 30% { transform: translateY(-4px); opacity: 1; } }

.aihub-chat__tools { display: flex; flex-direction: column; gap: 0.5rem; align-self: stretch; }
.aihub-chat__tool,
.aihub-chat__tool:hover { text-decoration: none; }
.aihub-chat__tool {
	display: flex; align-items: center; gap: 0.65rem; padding: 0.55rem 0.7rem;
	background: var(--aihub-bg); border: 1px solid var(--aihub-border);
	border-radius: 12px; color: var(--aihub-text);
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.aihub-chat__tool:hover { border-color: var(--aihub-primary); transform: translateX(2px); color: var(--aihub-text); }
.aihub-chat__tool img { flex: none; width: 40px; height: 40px; border-radius: 10px; object-fit: cover; }
.aihub-chat__tool-ph {
	flex: none; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center;
	background: var(--aihub-surface-2); color: var(--aihub-primary-ink); font-weight: 700;
}
.aihub-chat__tool-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.aihub-chat__tool-top { display: flex; align-items: center; gap: 0.45rem; min-width: 0; }
.aihub-chat__tool-top strong { font-size: 0.88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aihub-chat__tool-score {
	flex: none; font-size: 0.72rem; font-weight: 700; padding: 0.05rem 0.42rem; border-radius: 999px;
	background: color-mix(in srgb, var(--aihub-primary) 16%, transparent); color: var(--aihub-primary-ink);
}
.aihub-chat__tool-score--strong { background: color-mix(in srgb, var(--aihub-success) 16%, transparent); color: var(--aihub-success); }
.aihub-chat__tool-score--average { background: color-mix(in srgb, var(--aihub-warning) 16%, transparent); color: var(--aihub-warning); }
.aihub-chat__tool-score--weak { background: color-mix(in srgb, var(--aihub-danger) 16%, transparent); color: var(--aihub-danger); }
.aihub-chat__tool-meta { font-size: 0.74rem; color: var(--aihub-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aihub-chat__tool-go { flex: none; color: var(--aihub-primary-ink); font-weight: 700; }

.aihub-chat__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0 1rem 0.75rem; }
.aihub-chat__chips button {
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); color: var(--aihub-muted);
	font-size: 0.78rem; padding: 0.35rem 0.7rem; border-radius: 999px; cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.aihub-chat__chips button:hover { border-color: var(--aihub-primary); color: var(--aihub-text); }

.aihub-chat__form { display: flex; gap: 0.5rem; padding: 0.75rem 1rem; border-top: 1px solid var(--aihub-border); }
.aihub-chat__input {
	flex: 1; min-width: 0; background: var(--aihub-bg); border: 1px solid var(--aihub-border);
	border-radius: 999px; padding: 0.55rem 0.95rem; color: var(--aihub-text); font-size: 0.9rem; font-family: inherit;
}
.aihub-chat__input::placeholder { color: var(--aihub-muted); }
.aihub-chat__input:focus { outline: none; border-color: var(--aihub-primary); }
.aihub-chat__send {
	flex: none; width: 40px; height: 40px; border-radius: 50%; border: none; cursor: pointer;
	display: grid; place-items: center; background: var(--aihub-primary); color: #fff;
	transition: background 0.15s ease;
}
.aihub-chat__send:hover { background: var(--aihub-accent); }
.aihub-chat__note { margin: 0; padding: 0 1rem 0.7rem; font-size: 0.68rem; color: var(--aihub-muted); text-align: center; }

@media (max-width: 640px) {
	.aihub-chatbtn { left: 0.85rem; bottom: 0.85rem; width: 50px; height: 50px; }
	.aihub-chat { left: 0.6rem; right: 0.6rem; width: auto; bottom: 4.75rem; max-height: calc(100dvh - 6rem); }
}
@media (max-width: 960px) {
	/* Clear the single-tool sticky CTA bar, same as the back-to-top button. */
	.single-tool .aihub-chatbtn { bottom: 5.5rem; }
	.single-tool .aihub-chat { bottom: 9.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	.aihub-chatbtn__dot, .aihub-chat__live, .aihub-chat__typing i { animation: none; }
	.aihub-chat { transition: none; }
}

/* ------------------------------------------------------------------ */
/* Tool gallery (4-up snap carousel) + final verdict                   */
/* (.aihub-tgallery — .aihub-gallery belongs to the Pics/Videos CPT)   */
/* ------------------------------------------------------------------ */
.aihub-tgallery { position: relative; }
.aihub-tgallery__track {
	display: grid; grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3 * 0.8rem) / 4);
	gap: 0.8rem; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -ms-overflow-style: none;
	padding-bottom: 0.25rem;
}
.aihub-tgallery__track::-webkit-scrollbar { display: none; }
.aihub-tgallery__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	width: 40px; height: 40px; border-radius: 50%; cursor: pointer;
	display: grid; place-items: center; font-size: 1rem; line-height: 1;
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); color: var(--aihub-text);
	box-shadow: var(--aihub-shadow); transition: border-color 0.15s ease, opacity 0.15s ease;
}
.aihub-tgallery__nav:hover { border-color: var(--aihub-primary); }
.aihub-tgallery__nav--prev { left: -14px; }
.aihub-tgallery__nav--next { right: -14px; }
.aihub-tgallery__nav.is-disabled { opacity: 0.35; cursor: default; }
.aihub-tgallery__item {
	display: block; overflow: hidden; border-radius: var(--aihub-radius-sm);
	border: 1px solid var(--aihub-border); aspect-ratio: 3 / 4; background: var(--aihub-surface-2);
	scroll-snap-align: start;
}
.aihub-tgallery__item img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform 0.35s ease;
}
.aihub-tgallery__item:hover { border-color: var(--aihub-primary); }
.aihub-tgallery__item:hover img { transform: scale(1.05); }
.aihub-tgallery__note { margin: 0.85rem 0 0; font-size: 0.78rem; color: var(--aihub-muted); }

.aihub-panel--verdict { border-color: color-mix(in srgb, var(--aihub-primary) 30%, var(--aihub-border)); }
.aihub-finalverdict { display: flex; gap: 1.25rem; align-items: flex-start; }
.aihub-finalverdict__score {
	flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 92px; height: 92px; border-radius: var(--aihub-radius);
	background: color-mix(in srgb, var(--aihub-primary) 14%, transparent); color: var(--aihub-primary-ink);
}
.aihub-finalverdict__score strong { font-family: var(--aihub-display); font-size: 1.9rem; font-weight: 700; line-height: 1; }
.aihub-finalverdict__score small { font-size: 0.72rem; margin-top: 0.25rem; opacity: 0.8; }
.aihub-finalverdict__score--strong { background: color-mix(in srgb, var(--aihub-success) 14%, transparent); color: var(--aihub-success); }
.aihub-finalverdict__score--average { background: color-mix(in srgb, var(--aihub-warning) 14%, transparent); color: var(--aihub-warning); }
.aihub-finalverdict__score--weak { background: color-mix(in srgb, var(--aihub-danger) 14%, transparent); color: var(--aihub-danger); }
.aihub-finalverdict__body p { margin: 0 0 1rem; font-size: 1.02rem; line-height: 1.7; }
@media (max-width: 640px) {
	.aihub-finalverdict { flex-direction: column; }
	/* Carousel shows 2-up on small screens; arrows hide, swipe takes over. */
	.aihub-tgallery__track { grid-auto-columns: calc((100% - 0.8rem) / 2); }
	.aihub-tgallery__nav { display: none; }
}

/* ------------------------------------------------------------------ */
/* Tool hero: capability chips + score sparkline                       */
/* ------------------------------------------------------------------ */
.aihub-thero__feats { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.9rem; }
.aihub-thero__feat {
	display: inline-flex; align-items: center; gap: 0.35rem;
	font-size: 0.78rem; color: var(--aihub-muted); padding: 0.3rem 0.65rem;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border); border-radius: 999px;
}
.aihub-thero__feat i { font-style: normal; color: var(--aihub-success); font-weight: 700; }

.aihub-thero__spark { display: block; margin: 0.6rem auto 0; color: var(--aihub-primary-ink); }
.aihub-thero__spark svg { display: block; margin: 0 auto; }
.aihub-thero__spark em { display: block; font-style: normal; font-size: 0.68rem; color: var(--aihub-muted); margin-top: 0.2rem; }
.aihub-thero__spark-note { display: block; margin-top: 0.6rem; font-size: 0.7rem; color: var(--aihub-muted); }

/* ------------------------------------------------------------------ */
/* Find-my-companion quiz                                              */
/* ------------------------------------------------------------------ */
.aihub-quiz { max-width: 720px; margin: 0 auto; text-align: center; }
.aihub-quiz__dots { display: flex; justify-content: center; gap: 0.45rem; margin-bottom: 1.4rem; }
.aihub-quiz__dots i {
	width: 26px; height: 4px; border-radius: 999px; background: var(--aihub-surface-2);
	transition: background 0.25s ease;
}
.aihub-quiz__dots i.is-active { background: var(--aihub-primary); }
.aihub-quiz__step { display: none; }
.aihub-quiz__step.is-active { display: block; animation: aihub-quiz-in 0.3s ease; }
@keyframes aihub-quiz-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.aihub-quiz__q { font-family: var(--aihub-display); font-size: 1.25rem; margin: 0 0 1.1rem; }
.aihub-quiz__opts { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; }
.aihub-quiz__opts button {
	padding: 0.65rem 1.15rem; border-radius: 999px; cursor: pointer; font-size: 0.92rem;
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); color: var(--aihub-text);
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.aihub-quiz__opts button:hover { border-color: var(--aihub-primary); transform: translateY(-1px); }
.aihub-quiz__opts button.is-picked { border-color: var(--aihub-primary); background: color-mix(in srgb, var(--aihub-primary) 16%, transparent); }
.aihub-quiz__results { margin-top: 0.4rem; }
.aihub-quiz.is-loading .aihub-quiz__answer { opacity: 0.6; }
.aihub-quiz__answer { font-size: 1rem; color: var(--aihub-muted); margin: 0 0 1.1rem; }
.aihub-quiz__tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.6rem; text-align: left; }
.aihub-quiz__nav { display: flex; justify-content: center; gap: 1rem; margin-top: 1.25rem; }
.aihub-quiz__nav button {
	background: none; border: none; cursor: pointer; color: var(--aihub-muted); font-size: 0.85rem;
}
.aihub-quiz__nav button:hover { color: var(--aihub-primary-ink); }
.aihub-quiz__note { margin: 1rem 0 0; font-size: 0.7rem; color: var(--aihub-muted); }

/* ------------------------------------------------------------------ */
/* Review rival bar                                                    */
/* ------------------------------------------------------------------ */
.aihub-rivals {
	display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
	padding: 0.6rem 0.9rem; background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	border-radius: 999px; box-shadow: var(--aihub-shadow-lift);
}
.aihub-rivals__label { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--aihub-muted); }
.aihub-rivals__chip,
.aihub-rivals__chip:hover { text-decoration: none; }
.aihub-rivals__chip {
	display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.3rem 0.7rem 0.3rem 0.35rem;
	background: var(--aihub-surface-2); border: 1px solid var(--aihub-border); border-radius: 999px;
	color: var(--aihub-text); font-size: 0.85rem; transition: border-color 0.15s ease;
}
.aihub-rivals__chip:hover { border-color: var(--aihub-primary); color: var(--aihub-text); }
.aihub-rivals__chip .aihub-avatar { width: 26px; height: 26px; border-radius: 50%; }
.aihub-rivals__chip b { color: var(--aihub-primary-ink); }
.aihub-rivals__all,
.aihub-rivals__all:hover { text-decoration: none; }
.aihub-rivals__all { font-size: 0.83rem; color: var(--aihub-primary-ink); white-space: nowrap; }
.aihub-rivals__close {
	background: none; border: none; cursor: pointer; color: var(--aihub-muted);
	font-size: 1.15rem; line-height: 1; padding: 0.2rem 0.3rem; margin-left: auto;
}
.aihub-rivals__close:hover { color: var(--aihub-text); }

@media (min-width: 961px) {
	.aihub-rivals {
		position: fixed; left: 50%; bottom: 1.25rem; transform: translateX(-50%);
		z-index: 955; max-width: min(880px, calc(100vw - 2rem)); flex-wrap: nowrap;
	}
}
@media (max-width: 960px) {
	.aihub-rivals { margin: 1.25rem auto 0; max-width: var(--aihub-article); border-radius: var(--aihub-radius); }
}

/* ------------------------------------------------------------------ */
/* v5.11: band spacing, table logos, deal offers, reactbits-style fx   */
/* ------------------------------------------------------------------ */

/* CTA bands were floating in 72px section margins — tighten them. */
.aihub-section--band { margin: 2.75rem 0; }

/* Benchmark table: logo + name in the tool cell */
.aihub-table__toolcell a { display: inline-flex; align-items: center; gap: 0.6rem; }
.aihub-table__toolcell .aihub-avatar { width: 28px; height: 28px; border-radius: 8px; flex: none; font-size: 12px; }

/* Deal pages: verified-offer box + pulsing CTA */
.aihub-dealoffer {
	border: 1px solid color-mix(in srgb, var(--aihub-primary) 35%, var(--aihub-border));
	border-radius: var(--aihub-radius); background: var(--aihub-surface);
	padding: 1.4rem 1.6rem; margin: 1.5rem 0;
}
.aihub-dealoffer__label {
	display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em;
	text-transform: uppercase; color: var(--aihub-primary-ink); margin-bottom: 0.7rem;
}
.aihub-longform .aihub-dealoffer ul { list-style: none; margin: 0; padding: 0; }
.aihub-longform .aihub-dealoffer li { margin: 0 0 0.55rem; padding: 0; font-size: 1rem; line-height: 1.6; }
.aihub-longform .aihub-dealoffer li:last-child { margin-bottom: 0; }
.aihub-dealcta { margin: 1.75rem 0; }
.aihub-dealcta .aihub-cta {
	font-size: 1.05rem; padding: 0.95rem 2rem;
	animation: aihub-cta-pulse 2.4s ease-out infinite;
}
.aihub-dealcta .aihub-cta:hover { animation-play-state: paused; }
@keyframes aihub-cta-pulse {
	0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--aihub-primary) 55%, transparent); }
	70%, 100% { box-shadow: 0 0 0 16px transparent; }
}
.aihub-deal-verified { font-size: 0.85rem; color: var(--aihub-muted); }

/* Reactbits-inspired: cursor spotlight glow on cards (solid colour +
   blur = glow, no gradients). The dot is injected by aihub-ux.js. */
.aihub-glow { position: relative; overflow: hidden; }
.aihub-glowdot {
	position: absolute; left: var(--mx, 50%); top: var(--my, 50%);
	width: 220px; height: 220px; margin: -110px 0 0 -110px; border-radius: 50%;
	background: var(--aihub-primary); filter: blur(70px);
	opacity: 0; transition: opacity 0.25s ease; pointer-events: none;
}
.aihub-glow:hover .aihub-glowdot { opacity: 0.13; }

/* Magnetic buttons: transform is driven inline by JS; keep it springy. */
.aihub-cta, .aihub-btn--primary { transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; will-change: transform; }

@media (prefers-reduced-motion: reduce) {
	.aihub-dealcta .aihub-cta { animation: none; }
	.aihub-glowdot { display: none; }
}

/* ------------------------------------------------------------------ */
/* v5.12 mobile sweep: overflow fixes + on-page image lightbox         */
/* ------------------------------------------------------------------ */

/* Recently-viewed chips: scroll sideways instead of pushing the layout. */
.aihub-recent__list { display: flex; gap: 0.6rem; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 0.25rem; }
.aihub-recent__list::-webkit-scrollbar { display: none; }
.aihub-recent__item { flex: none; }

/* Imported TOC items: long entries must wrap, never widen the page. */
.aihub-longform .kb-table-of-content-list li,
.aihub-longform .kb-table-of-content-list a { white-space: normal; overflow-wrap: anywhere; max-width: 100%; }

/* Kadence gallery carousels: before their JS initialises (delayed), the
   slides sit in a row — clip them so the layout never breaks. */
.wp-block-kadence-advancedgallery { overflow: hidden; max-width: 100%; }

/* Benchmark tables scroll inside their panel on small screens. */
.aihub-benchmark { overflow-x: auto; overscroll-behavior-x: contain; }
.aihub-benchmark .aihub-table { min-width: 430px; }

/* ------------------------------------------------------------------ */
/* Image lightbox: click expands on the current screen (no new tab)    */
/* ------------------------------------------------------------------ */
.aihub-lightbox {
	position: fixed; inset: 0; z-index: 9990;
	display: none; align-items: center; justify-content: center;
	background: rgba(6, 5, 10, 0.94); padding: 2.5rem 1rem;
}
.aihub-lightbox.is-open { display: flex; }
.aihub-lightbox img {
	max-width: min(94vw, 1100px); max-height: 84vh; width: auto; height: auto;
	border-radius: var(--aihub-radius-sm); border: 1px solid var(--aihub-border);
	box-shadow: var(--aihub-shadow-lift);
}
.aihub-lightbox__close {
	position: absolute; top: 0.9rem; right: 0.9rem;
	width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--aihub-border);
	background: var(--aihub-surface); color: var(--aihub-text); font-size: 1.3rem; line-height: 1;
	cursor: pointer; display: grid; place-items: center;
}
.aihub-lightbox__close:hover { border-color: var(--aihub-primary); }
.aihub-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--aihub-border);
	background: var(--aihub-surface); color: var(--aihub-text); font-size: 1.1rem;
	cursor: pointer; display: grid; place-items: center;
}
.aihub-lightbox__nav:hover { border-color: var(--aihub-primary); }
.aihub-lightbox__nav--prev { left: 0.75rem; }
.aihub-lightbox__nav--next { right: 0.75rem; }
.aihub-lightbox__nav[hidden] { display: none; }
.aihub-lightbox__count {
	position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%);
	font-size: 0.8rem; color: var(--aihub-muted);
}
body.aihub-lightbox-open { overflow: hidden; }
@media (max-width: 640px) {
	.aihub-lightbox { padding: 1rem 0.5rem; }
	.aihub-lightbox img { max-width: 96vw; max-height: 78vh; }
	.aihub-lightbox__nav { width: 38px; height: 38px; }
}

/* Imported TOCs: never paint outside the wrap. (Multicol itself is killed
   at the .kb-table-of-content-list rules — columns + max-height overflow
   sideways, so the list must NOT be a multicol container at all.) */
.aihub-longform .kb-table-of-content-wrap { overflow: hidden; }

/* ------------------------------------------------------------------ */
/* Featured partners strip (sponsored placements, always labeled)      */
/* ------------------------------------------------------------------ */
/* Deliberately flat and quiet: one row per partner, no floating chips,
   no hover theatrics — the label lives in the meta line. */
.aihub-partners__head { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.aihub-partners__note { font-size: 0.78rem; color: var(--aihub-muted); }
.aihub-partners__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 0.7rem; }
.aihub-partner {
	display: flex; align-items: center; gap: 0.75rem;
	background: var(--aihub-surface); border: 1px solid var(--aihub-border);
	border-radius: var(--aihub-radius-sm); padding: 0.75rem 0.9rem;
	transition: border-color 0.16s ease;
}
.aihub-partner:hover { border-color: var(--aihub-primary); }
.aihub-partner .aihub-avatar { width: 38px; height: 38px; border-radius: 10px; flex: none; font-size: 15px; }
.aihub-partner__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.1rem; }
.aihub-partner__body h3 { margin: 0; font-size: 0.94rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aihub-partner__body h3 a, .aihub-partner__body h3 a:hover { text-decoration: none; color: var(--aihub-text); }
.aihub-partner__body h3 a:hover { color: var(--aihub-primary-ink); }
.aihub-partner__meta { display: flex; align-items: center; gap: 0.45rem; font-size: 0.72rem; color: var(--aihub-muted); }
.aihub-partner__tag { font-style: normal; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-size: 0.6rem; color: var(--aihub-warning); }
.aihub-partner .aihub-cta { flex: none; padding: 0.4rem 0.95rem; font-size: 0.82rem; }
@media (max-width: 640px) { .aihub-partners__grid { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ */
/* Nav dice — roll for a random tool                                   */
/* ------------------------------------------------------------------ */
.aihub-dice a {
	display: inline-grid !important; place-items: center;
	width: 38px !important; height: 38px !important; min-width: 38px;
	padding: 0 !important; box-sizing: border-box;
	border: 1px solid var(--aihub-border); border-radius: 10px;
	color: var(--aihub-muted);
	transition: color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.aihub-dice a:hover { color: var(--aihub-primary-ink); border-color: var(--aihub-primary); transform: rotate(-12deg); }
.aihub-dice a.is-rolling { animation: aihub-dice-roll 0.48s cubic-bezier(0.34, 1.3, 0.64, 1); }
@keyframes aihub-dice-roll {
	0% { transform: rotate(0) scale(1); }
	45% { transform: rotate(200deg) scale(0.82); }
	100% { transform: rotate(360deg) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.aihub-dice a:hover { transform: none; }
	.aihub-dice a.is-rolling { animation: none; }
}

/* Preliminary-score note on the tool scorecard */
.aihub-thero__prelim { display: block; margin-top: 0.35rem; font-size: 0.68rem; line-height: 1.4; color: var(--aihub-muted); max-width: 15rem; }

/* ------------------------------------------------------------------ */
/* v5.19 one-page glossary                                             */
/* ------------------------------------------------------------------ */
.aihub-glossary-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; }
.aihub-glossary { display: grid; gap: 1.25rem; }
.aihub-glossary__term { scroll-margin-top: 90px; }
.aihub-glossary__term h2 { margin-top: 0; }
.aihub-glossary__term:target { border-color: var(--aihub-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--aihub-primary) 35%, transparent); }

/* v5.20 auto-FAQ on tool pages */
.aihub-toolfaq { display: grid; gap: 0.6rem; }
.aihub-toolfaq__item { border: 1px solid var(--aihub-border, rgba(255,255,255,0.08)); border-radius: 10px; padding: 0.85rem 1.1rem; background: color-mix(in srgb, var(--aihub-surface, #14141f) 70%, transparent); }
.aihub-toolfaq__item summary { cursor: pointer; font-weight: 600; list-style: none; position: relative; padding-right: 1.6rem; }
.aihub-toolfaq__item summary::-webkit-details-marker { display: none; }
.aihub-toolfaq__item summary::after { content: "+"; position: absolute; right: 0.2rem; top: 50%; transform: translateY(-50%); color: var(--aihub-primary); font-size: 1.2rem; }
.aihub-toolfaq__item[open] summary::after { content: "\2212"; }
.aihub-toolfaq__item p { margin: 0.7rem 0 0.15rem; color: var(--aihub-muted); }

/* v5.21 tool video previews */
.aihub-tvideos { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.9rem; }
.aihub-tvideos__item { margin: 0; border-radius: 12px; overflow: hidden; background: #000; }
.aihub-tvideos__item video { display: block; width: 100%; aspect-ratio: 9 / 16; object-fit: cover; }
.aihub-tvideos__item figcaption { font-size: 0.8rem; color: var(--aihub-muted); padding: 0.4rem 0.6rem; background: color-mix(in srgb, var(--aihub-surface, #14141f) 85%, transparent); }
@media (max-width: 600px) { .aihub-tvideos { grid-template-columns: repeat(2, 1fr); } }

/* v5.22 homepage Swipey video band (sponsored, labeled) */
.aihub-vband { border: 1px solid var(--aihub-border, rgba(255,255,255,0.08)); border-radius: 16px; padding: 1.5rem 1.5rem 1.25rem; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); }
.aihub-vband__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.aihub-vband__head h2 { margin: 0.35rem 0 0.3rem; font-size: 1.45rem; }
.aihub-vband__head p { margin: 0; color: var(--aihub-muted); max-width: 46ch; }
.aihub-vband__ad { display: inline-block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #F59E0B; border: 1px solid color-mix(in srgb, #F59E0B 45%, transparent); border-radius: 999px; padding: 0.15rem 0.6rem; }
.aihub-vband__track { display: flex; gap: 0.8rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 0.5rem; scrollbar-width: thin; }
.aihub-vband__item { position: relative; flex: 0 0 158px; scroll-snap-align: start; border-radius: 12px; overflow: hidden; background: #000; }
.aihub-vband__item video { display: block; width: 158px; aspect-ratio: 9 / 16; object-fit: cover; transition: transform 0.25s ease; }
.aihub-vband__item:hover video { transform: scale(1.04); }
.aihub-vband__name { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.1rem 0.6rem 0.45rem; font-size: 0.8rem; font-weight: 600; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,0.75)); pointer-events: none; }
.aihub-vband__ctas { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.9rem; }
@media (max-width: 600px) { .aihub-vband { padding: 1.1rem; } .aihub-vband__item, .aihub-vband__item video { flex-basis: 132px; width: 132px; } }

/* v5.23 native forms (replaces Gravity Forms) */
.aihub-form { display: grid; gap: 1rem; max-width: 640px; margin: 1.25rem 0; }
.aihub-form__row { display: grid; gap: 0.35rem; }
.aihub-form__row label { font-weight: 600; font-size: 0.92rem; }
.aihub-form__row input, .aihub-form__row select, .aihub-form__row textarea { width: 100%; padding: 0.65rem 0.8rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.14)); border-radius: 10px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 85%, transparent); color: var(--aihub-text, #eee); font: inherit; }
.aihub-form__row input:focus, .aihub-form__row select:focus, .aihub-form__row textarea:focus { outline: 2px solid var(--aihub-primary); outline-offset: 1px; }
.aihub-form__check { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400 !important; }
.aihub-form__check input { width: auto; margin-top: 0.25rem; }
.aihub-form__req { color: var(--aihub-primary); }
.aihub-form__hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }
.aihub-form__submit { justify-self: start; padding: 0.7rem 2rem; }
.aihub-form__note { font-size: 0.82rem; color: var(--aihub-muted); margin: 0; }
.aihub-form__notice { padding: 0.85rem 1.1rem; border-radius: 10px; margin-bottom: 1rem; font-weight: 600; }
.aihub-form__notice--ok { border: 1px solid #22C55E; color: #22C55E; background: color-mix(in srgb, #22C55E 10%, transparent); }
.aihub-form__notice--err { border: 1px solid #EF4444; color: #EF4444; background: color-mix(in srgb, #EF4444 10%, transparent); }

/* v5.23.1 form design polish: panel wrapper + responsive 2-col layout */
.aihub-form { max-width: 760px; padding: 1.6rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.1)); border-radius: 16px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.aihub-form__row { grid-column: span 2; }
@media (min-width: 720px) {
	.aihub-form__row--text, .aihub-form__row--url, .aihub-form__row--email, .aihub-form__row--select { grid-column: span 1; }
	.aihub-form__row--textarea { grid-column: span 2; }
}
.aihub-form__row label { font-size: 0.88rem; color: var(--aihub-text, #eee); letter-spacing: 0.01em; }
.aihub-form__row input, .aihub-form__row select, .aihub-form__row textarea { background: color-mix(in srgb, #000 25%, var(--aihub-surface, #14141f)); border-radius: 12px; padding: 0.72rem 0.9rem; transition: border-color 0.15s ease; }
.aihub-form__row input:hover, .aihub-form__row select:hover, .aihub-form__row textarea:hover { border-color: color-mix(in srgb, var(--aihub-primary) 55%, transparent); }
.aihub-form__row select { appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.9rem center; padding-right: 2.4rem; }
.aihub-form__check { border: 1px dashed color-mix(in srgb, var(--aihub-primary) 40%, transparent); border-radius: 12px; padding: 0.8rem 0.95rem; font-size: 0.9rem; line-height: 1.45; }
.aihub-form__check input { accent-color: var(--aihub-primary); width: 1.05rem; height: 1.05rem; }
.aihub-form__submit { grid-column: span 2; justify-self: start; padding: 0.8rem 2.6rem; font-size: 1rem; }
.aihub-form__note { grid-column: span 2; }
.aihub-form__notice { max-width: 760px; }
@media (max-width: 719px) { .aihub-form { padding: 1.1rem; } }

/* v5.24 Kadence Advanced Form polish (submit/report/contact) */
.wp-block-kadence-advanced-form { max-width: 760px; padding: 1.6rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.1)); border-radius: 16px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); }
form.kb-advanced-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.05rem 1.1rem; }
.kb-adv-form-field { margin: 0 !important; grid-column: span 2; }
@media (min-width: 720px) {
	.kb-adv-form-field.wp-block-kadence-advanced-form-text,
	.kb-adv-form-field.wp-block-kadence-advanced-form-email,
	.kb-adv-form-field.wp-block-kadence-advanced-form-select { grid-column: span 1; }
	.kb-adv-form-field.wp-block-kadence-advanced-form-textarea { grid-column: span 2; }
}
.kb-adv-form-label { display: block; font-weight: 600; font-size: 0.88rem; margin: 0 0 0.35rem; color: var(--aihub-text, #eee); }
.kb-adv-form-required { color: var(--aihub-primary); margin-left: 0.15rem; }
.kb-advanced-form .kb-field { width: 100%; padding: 0.72rem 0.9rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.14)); border-radius: 12px; background: color-mix(in srgb, #000 25%, var(--aihub-surface, #14141f)); color: var(--aihub-text, #eee); font: inherit; transition: border-color 0.15s ease; }
.kb-advanced-form .kb-field:hover { border-color: color-mix(in srgb, var(--aihub-primary) 55%, transparent); }
.kb-advanced-form .kb-field:focus { outline: 2px solid var(--aihub-primary); outline-offset: 1px; }
.kb-advanced-form select.kb-field { appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.9rem center; padding-right: 2.4rem; }
.kb-advanced-form textarea.kb-field { min-height: 130px; }
.kb-adv-form-field.wp-block-kadence-advanced-form-accept { border: 1px dashed color-mix(in srgb, var(--aihub-primary) 40%, transparent); border-radius: 12px; padding: 0.8rem 0.95rem; }
.kb-adv-form-field.wp-block-kadence-advanced-form-accept .kb-adv-form-label { display: inline; font-weight: 400; font-size: 0.9rem; line-height: 1.45; }
.kb-adv-form-field.wp-block-kadence-advanced-form-accept input[type="checkbox"] { accent-color: var(--aihub-primary); width: 1.05rem; height: 1.05rem; margin-right: 0.5rem; }
.kb-adv-form-field.wp-block-kadence-advanced-form-submit { grid-column: span 2; }
.kb-advanced-form .kb-adv-form-submit-button, .kb-advanced-form button[type="submit"] { display: inline-block; padding: 0.8rem 2.6rem; border: 0; border-radius: 999px; background: var(--aihub-primary); color: #fff; font-weight: 700; font-size: 1rem; cursor: pointer; transition: transform 0.15s ease, filter 0.15s ease; }
.kb-advanced-form .kb-adv-form-submit-button:hover, .kb-advanced-form button[type="submit"]:hover { filter: brightness(1.1); transform: translateY(-1px); }
.kb-adv-form-message { grid-column: span 2; padding: 0.85rem 1.1rem; border-radius: 10px; font-weight: 600; }
.kb-adv-form-success { border: 1px solid #22C55E; color: #22C55E; background: color-mix(in srgb, #22C55E 10%, transparent); }
.kb-adv-form-warning { border: 1px solid #EF4444; color: #EF4444; background: color-mix(in srgb, #EF4444 10%, transparent); }
@media (max-width: 719px) { .wp-block-kadence-advanced-form { padding: 1.1rem; } }

/* v5.24.1 Kadence prints its block CSS after ours - win the contested props */
.wp-block-kadence-advanced-form form.kb-advanced-form { display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.05rem 1.1rem !important; }
.wp-block-kadence-advanced-form .kb-adv-form-field { margin: 0 !important; width: auto !important; max-width: none !important; }
.wp-block-kadence-advanced-form .kb-field { border-radius: 12px !important; padding: 0.72rem 0.9rem !important; background: color-mix(in srgb, #000 25%, var(--aihub-surface, #14141f)) !important; border: 1px solid var(--aihub-border, rgba(255,255,255,0.14)) !important; color: var(--aihub-text, #eee) !important; box-sizing: border-box; }
.wp-block-kadence-advanced-form .kb-field:hover { border-color: color-mix(in srgb, var(--aihub-primary) 55%, transparent) !important; }
.wp-block-kadence-advanced-form .kb-adv-form-submit-button, .wp-block-kadence-advanced-form button[type="submit"] { border-radius: 999px !important; padding: 0.8rem 2.6rem !important; background: var(--aihub-primary) !important; color: #fff !important; }

/* v5.25 homepage: trending strip, freshness feed, deal spotlight */
.aihub-trend__head h2, .aihub-fresh__head h2 { margin: 0 0 0.2rem; font-size: 1.3rem; }
.aihub-trend__head p, .aihub-fresh__head p { margin: 0 0 1rem; color: var(--aihub-muted); font-size: 0.92rem; }
.aihub-trend__row { display: flex; gap: 0.8rem; overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 0.4rem; }
.aihub-trend__card { flex: 0 0 auto; display: flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1.1rem 0.65rem 0.7rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.1)); border-radius: 999px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); text-decoration: none; color: var(--aihub-text); transition: border-color 0.15s ease, transform 0.15s ease; }
.aihub-trend__card:hover { border-color: var(--aihub-primary); transform: translateY(-2px); text-decoration: none; }
.aihub-trend__rank { font-weight: 800; color: var(--aihub-primary); font-size: 0.9rem; }
.aihub-trend__card img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.aihub-trend__name { font-weight: 600; white-space: nowrap; }
.aihub-trend__score { font-size: 0.8rem; font-weight: 700; padding: 0.1rem 0.5rem; border-radius: 999px; background: color-mix(in srgb, var(--aihub-primary) 18%, transparent); color: var(--aihub-primary); }
.aihub-fresh__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0.5rem 1.4rem; }
.aihub-fresh__list li { display: flex; justify-content: space-between; gap: 0.8rem; padding: 0.55rem 0.2rem; border-bottom: 1px dashed var(--aihub-border, rgba(255,255,255,0.08)); font-size: 0.92rem; }
.aihub-fresh__list a { font-weight: 600; }
.aihub-fresh__what { color: var(--aihub-muted); font-size: 0.82rem; white-space: nowrap; }
.aihub-dealspot { border: 1px solid color-mix(in srgb, #F59E0B 40%, transparent); border-radius: 16px; padding: 1.2rem 1.4rem; background: color-mix(in srgb, #F59E0B 6%, transparent); }
.aihub-dealspot__row { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap; margin-top: 0.5rem; }
.aihub-dealspot__logo { width: 54px; height: 54px; border-radius: 12px; object-fit: cover; }
.aihub-dealspot__body { flex: 1; min-width: 220px; }
.aihub-dealspot__body h2 { margin: 0 0 0.25rem; font-size: 1.15rem; }
.aihub-dealspot__body p { margin: 0; color: var(--aihub-muted); font-size: 0.92rem; }

/* v5.25.1 directory quick-filter chips */
.aihub-quickfilters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.1rem; }
.aihub-quickfilters .aihub-chip.is-on { border-color: var(--aihub-primary); background: var(--aihub-primary); color: #fff; }

/* v5.26 Best-X collection lists */
.aihub-collection { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; counter-reset: none; }
.aihub-collection__item { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--aihub-border, rgba(255,255,255,0.1)); border-radius: 14px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); }
.aihub-collection__rank { flex: 0 0 auto; width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border-radius: 50%; font-weight: 800; background: color-mix(in srgb, var(--aihub-primary) 16%, transparent); color: var(--aihub-primary); }
.aihub-collection__item:first-child .aihub-collection__rank { background: var(--aihub-primary); color: #fff; }
.aihub-collection__logo { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; flex: 0 0 auto; }
.aihub-collection__body { flex: 1; min-width: 0; }
.aihub-collection__body h3 { margin: 0 0 0.2rem; font-size: 1.05rem; }
.aihub-collection__body p { margin: 0; font-size: 0.9rem; color: var(--aihub-muted); }
.aihub-collection__score { font-size: 0.8rem; font-weight: 700; padding: 0.12rem 0.55rem; border-radius: 999px; background: color-mix(in srgb, #22C55E 16%, transparent); color: #22C55E; margin-left: 0.4rem; }
.aihub-collection__price { margin-top: 0.25rem !important; font-weight: 600; color: var(--aihub-text) !important; }
.aihub-collection__cta { flex: 0 0 auto; }
.aihub-collection__updated { color: var(--aihub-muted); font-size: 0.85rem; }
@media (max-width: 640px) { .aihub-collection__item { flex-wrap: wrap; } .aihub-collection__cta { width: 100%; } }

/* v5.27 bonus chips, deal badges, featured slots, embed box (datingtools-inspired) */
.aihub-bonuschip { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.8rem; font-weight: 600; color: #22C55E; background: color-mix(in srgb, #22C55E 12%, transparent); border: 1px solid color-mix(in srgb, #22C55E 40%, transparent); border-radius: 999px; padding: 0.15rem 0.6rem; }
.aihub-dealbadge { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.8rem; font-weight: 700; color: #F97316; background: color-mix(in srgb, #F97316 12%, transparent); border: 1px solid color-mix(in srgb, #F97316 45%, transparent); border-radius: 999px; padding: 0.15rem 0.6rem; text-decoration: none; }
.aihub-dealbadge:hover { background: color-mix(in srgb, #F97316 22%, transparent); }
.aihub-thero__chips, .aihub-collection__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.5rem 0; }
.aihub-t20__bonus { display: block; font-size: 0.72rem; color: #22C55E; font-weight: 600; margin-top: 0.1rem; }
/* Get Featured slots — dashed, muted, clearly an ad */
.aihub-featslot { border: 1px dashed color-mix(in srgb, var(--aihub-primary) 40%, transparent) !important; background: color-mix(in srgb, var(--aihub-primary) 5%, transparent); }
.aihub-featslot__ad, .aihub-t20__adtag { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #F59E0B; border: 1px solid color-mix(in srgb, #F59E0B 45%, transparent); border-radius: 4px; padding: 0.05rem 0.3rem; vertical-align: middle; }
.aihub-t20__row--ad { opacity: 0.92; }
.aihub-t20__row--ad .aihub-t20__go { font-size: 0.75rem; font-weight: 700; color: var(--aihub-primary); white-space: nowrap; }
/* Embed / promote box */
.aihub-embed__preview { margin-bottom: 0.8rem; }
.aihub-embed__label { display: block; font-weight: 600; margin-bottom: 0.4rem; }
.aihub-embed__code { width: 100%; font-family: monospace; font-size: 0.78rem; padding: 0.7rem 0.9rem; border-radius: 10px; border: 1px solid var(--aihub-border, rgba(255,255,255,0.14)); background: color-mix(in srgb, #000 30%, var(--aihub-surface, #14141f)); color: var(--aihub-text, #eee); resize: vertical; }
.aihub-embed__copy { margin-top: 0.6rem; }

/* v5.27.1 deal badge is an <a> — beat the generic link color */
.aihub .aihub-dealbadge, .aihub-collection .aihub-dealbadge, .aihub-thero__chips .aihub-dealbadge { color: #F97316 !important; text-decoration: none; }

/* v5.29 vband: blurred model previews, revealed on hover (tap on touch) */
.aihub-vband__item video { filter: blur(16px) saturate(0.85); transform: scale(1.12); transition: filter 0.25s ease, transform 0.35s ease; }
.aihub-vband__item:hover video, .aihub-vband__item.is-clear video { filter: none; transform: scale(1); }
.aihub-vband__item::before { content: "\1F441  Hover to view"; position: absolute; z-index: 2; top: 50%; left: 50%; transform: translate(-50%, -50%); white-space: nowrap; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; color: #fff; background: rgba(0, 0, 0, 0.55); border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 999px; padding: 0.35rem 0.7rem; pointer-events: none; opacity: 1; transition: opacity 0.2s ease; }
.aihub-vband__item:hover::before, .aihub-vband__item.is-clear::before { opacity: 0; }
@media (hover: none) { .aihub-vband__item::before { content: "\1F441  Tap to view"; } }

/* v5.30.1 navbar lemon CTA (sponsored, /go/-tracked) — clean pill, no emoji */
.aihub-navcta-li { display: flex; align-items: center; margin-left: 0.5rem; }
a.aihub-navcta {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem;
	height: 36px; padding: 0 1.15rem;
	background: linear-gradient(180deg, #fff06b 0%, #f5d90a 100%);
	color: #1c1600 !important;
	font-weight: 800; font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase;
	border-radius: 999px; line-height: 1; white-space: nowrap;
	border: 1px solid rgba(0, 0, 0, 0.18);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), 0 3px 12px -3px rgba(245, 217, 10, 0.5);
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
a.aihub-navcta::before {
	content: ""; width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto;
	background: #1c1600; opacity: 0.85;
	animation: aihub-navcta-blink 1.8s ease-in-out infinite;
}
@keyframes aihub-navcta-blink { 0%, 100% { opacity: 0.85; } 50% { opacity: 0.25; } }
a.aihub-navcta:hover {
	transform: translateY(-1px);
	filter: brightness(1.05);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), 0 6px 18px -3px rgba(245, 217, 10, 0.7);
	color: #1c1600 !important;
}
@media (max-width: 1024px) { .aihub-navcta-li { margin: 0.4rem 0 0.4rem 0; } a.aihub-navcta { height: 40px; } }
@media (prefers-reduced-motion: reduce) { a.aihub-navcta::before { animation: none; } }

/* v5.31 rotating featured-partner ad slots in homepage sections */
.aihub-benchfeat { display: flex; align-items: center; gap: 0.7rem; margin-top: 0.8rem; padding: 0.7rem 0.9rem; border: 1px dashed color-mix(in srgb, #F59E0B 45%, transparent); border-radius: 10px; background: color-mix(in srgb, #F59E0B 5%, transparent); flex-wrap: wrap; }
.aihub-benchfeat__ad { font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; color: #F59E0B; border: 1px solid color-mix(in srgb, #F59E0B 45%, transparent); border-radius: 4px; padding: 0.1rem 0.35rem; }
.aihub-benchfeat__name { font-weight: 700; }
.aihub-benchfeat__note { font-size: 0.78rem; color: var(--aihub-muted); flex: 1; min-width: 180px; }
.aihub-trend__card--ad { border: 1px dashed color-mix(in srgb, #F59E0B 50%, transparent) !important; }
.aihub-trend__adtag { color: #F59E0B !important; font-size: 0.62rem !important; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }

/* v5.32 category directory grid (replaces feedgrid) + articles strip */
.aihub-catgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.9rem; }
@media (max-width: 1024px) { .aihub-catgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .aihub-catgrid { grid-template-columns: 1fr; } }
.aihub-catcol { display: flex; flex-direction: column; border: 1px solid var(--aihub-border, rgba(255,255,255,0.09)); border-radius: 14px; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); padding: 0.9rem 1rem; transition: border-color 0.15s ease, transform 0.15s ease; }
.aihub-catcol:hover { border-color: color-mix(in srgb, var(--aihub-primary) 45%, transparent); transform: translateY(-2px); }
.aihub-catcol--smart { border-color: color-mix(in srgb, var(--aihub-primary) 35%, transparent); background: color-mix(in srgb, var(--aihub-primary) 5%, transparent); }
.aihub-catcol__head { display: flex; align-items: center; gap: 0.45rem; padding-bottom: 0.55rem; margin-bottom: 0.35rem; border-bottom: 1px solid var(--aihub-border, rgba(255,255,255,0.09)); text-decoration: none; }
.aihub-catcol__icon { font-size: 1rem; }
.aihub-catcol__name { font-weight: 700; font-size: 0.92rem; color: var(--aihub-text, #eee); }
.aihub-catcol__count { margin-left: auto; font-size: 0.72rem; font-weight: 700; color: var(--aihub-muted); background: rgba(255,255,255,0.05); border-radius: 999px; padding: 0.1rem 0.5rem; }
.aihub-catcol__list { list-style: none; margin: 0; padding: 0; flex: 1; }
.aihub-catcol__list li a { display: flex; align-items: center; gap: 0.5rem; padding: 0.34rem 0; text-decoration: none; border-radius: 6px; }
.aihub-catcol__list li a:hover .aihub-catcol__tool { color: var(--aihub-primary); }
.aihub-catcol__rank { flex: 0 0 auto; width: 1.1rem; font-size: 0.72rem; font-weight: 700; color: var(--aihub-muted); text-align: center; }
.aihub-catcol__tool { flex: 1; min-width: 0; font-size: 0.86rem; color: var(--aihub-text, #ddd); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color 0.12s ease; }
.aihub-catcol__score { flex: 0 0 auto; font-size: 0.78rem; font-weight: 700; color: var(--aihub-primary); font-variant-numeric: tabular-nums; }
.aihub-catcol__more { margin-top: 0.5rem; font-size: 0.78rem; font-weight: 700; color: var(--aihub-primary); text-decoration: none; }
.aihub-catcol__more:hover { text-decoration: underline; }
.aihub-artstrip { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; border: 1px solid var(--aihub-border, rgba(255,255,255,0.09)); border-radius: 12px; padding: 0.75rem 1rem; background: color-mix(in srgb, var(--aihub-surface, #14141f) 70%, transparent); }
.aihub-artstrip__label { font-size: 0.8rem; font-weight: 700; color: var(--aihub-muted); }
.aihub-artstrip__item { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.82rem; color: var(--aihub-text, #ddd); text-decoration: none; border: 1px solid var(--aihub-border, rgba(255,255,255,0.1)); border-radius: 999px; padding: 0.32rem 0.75rem; max-width: 100%; }
.aihub-artstrip__item:hover { border-color: var(--aihub-primary); color: var(--aihub-primary); }
.aihub-artstrip__type { font-size: 0.66rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: var(--aihub-primary); }
.aihub-artstrip__all { margin-left: auto; font-size: 0.8rem; font-weight: 700; color: var(--aihub-primary); text-decoration: none; white-space: nowrap; }

/* v5.33 catgrid rich rows: logos, offers, band-colored scores */
.aihub-catcol__list li a { align-items: center; gap: 0.55rem; padding: 0.42rem 0.3rem; margin: 0 -0.3rem; }
.aihub-catcol__list li a:hover { background: rgba(255,255,255,0.035); }
.aihub-catcol__logo { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 7px; object-fit: cover; background: rgba(255,255,255,0.06); }
.aihub-catcol__logo--ph { display: inline-flex; align-items: center; justify-content: center; font-size: 0.72rem; font-weight: 800; color: var(--aihub-muted); border: 1px solid var(--aihub-border, rgba(255,255,255,0.12)); }
.aihub-catcol__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.08rem; }
.aihub-catcol__tool { font-weight: 600; }
.aihub-catcol__deal { font-size: 0.7rem; }
.aihub-catcol__offer { font-size: 0.7rem; color: var(--aihub-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aihub-catcol__offer--bonus { color: #22C55E; font-weight: 600; }
.aihub-catcol__score { font-size: 0.76rem; font-weight: 800; border-radius: 7px; padding: 0.2rem 0.42rem; background: rgba(255,255,255,0.05); }
.aihub-catcol__score--strong { color: #22C55E; background: color-mix(in srgb, #22C55E 12%, transparent); }
.aihub-catcol__score--good { color: #3B82F6; background: color-mix(in srgb, #3B82F6 12%, transparent); }
.aihub-catcol__score--average { color: #F59E0B; background: color-mix(in srgb, #F59E0B 12%, transparent); }
.aihub-catcol__score--weak { color: #EF4444; background: color-mix(in srgb, #EF4444 12%, transparent); }

/* v5.34 catgrid fixes: overflow (1fr -> minmax), gif ad cell, article cards */
.aihub-catgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .aihub-catgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .aihub-catgrid { grid-template-columns: minmax(0, 1fr); } }
.aihub-catcol--gif { position: relative; overflow: hidden; padding: 0; min-height: 240px; justify-content: flex-end; text-decoration: none; border-color: color-mix(in srgb, #F59E0B 35%, transparent); }
.aihub-catcol--gif video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.aihub-catcol--gif::after { content: ""; position: absolute; inset: 40% 0 0 0; background: linear-gradient(transparent, rgba(0,0,0,0.85)); }
.aihub-catcol__gifad { position: absolute; top: 0.6rem; right: 0.6rem; z-index: 2; font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #F59E0B; background: rgba(0,0,0,0.55); border: 1px solid color-mix(in srgb, #F59E0B 50%, transparent); border-radius: 4px; padding: 0.15rem 0.4rem; }
.aihub-catcol__gifbody { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 0.2rem; padding: 0.9rem 1rem; }
.aihub-catcol__gifbody b { color: #fff; font-size: 1rem; }
.aihub-catcol__gifbody span { color: rgba(255,255,255,0.85); font-size: 0.76rem; line-height: 1.35; }
.aihub-catcol__gifcta { margin-top: 0.3rem; font-weight: 800; color: var(--aihub-primary-bright, #bd93ff) !important; }
.aihub-catcol--gif:hover .aihub-catcol__gifcta { text-decoration: underline; }
.aihub-artcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; }
@media (max-width: 1024px) { .aihub-artcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .aihub-artcards { grid-template-columns: minmax(0, 1fr); } }
.aihub-artcard { display: flex; flex-direction: column; border: 1px solid var(--aihub-border, rgba(255,255,255,0.09)); border-radius: 14px; overflow: hidden; background: color-mix(in srgb, var(--aihub-surface, #14141f) 80%, transparent); text-decoration: none; transition: border-color 0.15s ease, transform 0.15s ease; }
.aihub-artcard:hover { border-color: color-mix(in srgb, var(--aihub-primary) 45%, transparent); transform: translateY(-2px); }
.aihub-artcard__media { position: relative; display: block; aspect-ratio: 16 / 9; background: rgba(255,255,255,0.04); }
.aihub-artcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aihub-artcard__type { position: absolute; top: 0.55rem; left: 0.55rem; font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #fff; background: color-mix(in srgb, var(--aihub-primary) 80%, #000); border-radius: 5px; padding: 0.18rem 0.45rem; }
.aihub-artcard__body { display: flex; flex-direction: column; gap: 0.35rem; padding: 0.8rem 0.95rem 0.95rem; }
.aihub-artcard__title { font-weight: 700; font-size: 0.9rem; line-height: 1.35; color: var(--aihub-text, #eee); }
.aihub-artcard__meta { font-size: 0.74rem; color: var(--aihub-muted); }

/* v5.35 Deal of the week v2 — richer spotlight band */
.aihub-dealspot--v2 { position: relative; overflow: hidden; padding: 1.5rem 1.7rem; border-radius: 18px; border: 1px solid color-mix(in srgb, #F59E0B 28%, transparent); background: var(--aihub-surface, #14141f); }
/* Thin amber rail on the left edge — the only chrome that carries the accent. */
.aihub-dealspot--v2::before { content: ""; position: absolute; top: 0; left: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, #FBBF24, #F59E0B); }
.aihub-dealspot__head { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; }
.aihub-dealspot__flag { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em; color: #F59E0B; background: color-mix(in srgb, #F59E0B 14%, transparent); border: 1px solid color-mix(in srgb, #F59E0B 45%, transparent); border-radius: 999px; padding: 0.3rem 0.75rem; }
.aihub-dealspot__verified { font-size: 0.78rem; font-weight: 700; color: #22C55E; }
.aihub-dealspot--v2 .aihub-dealspot__row { margin-top: 1rem; align-items: center; position: relative; z-index: 1; }
.aihub-dealspot--v2 .aihub-dealspot__logo { width: 64px; height: 64px; border-radius: 14px; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35); }
.aihub-dealspot--v2 .aihub-dealspot__body h2 { font-size: 1.35rem; margin: 0 0 0.35rem; line-height: 1.25; }
.aihub-dealspot__sub { display: flex; align-items: center; flex-wrap: wrap; gap: 0.55rem; margin: 0 !important; font-size: 0.95rem; color: var(--aihub-muted); }
.aihub-dealspot__sub strong { color: var(--aihub-text); }
.aihub-dealspot__score { font-size: 0.78rem; font-weight: 800; padding: 0.12rem 0.55rem; border-radius: 999px; }
.aihub-dealspot__score--strong { color: #22C55E; background: color-mix(in srgb, #22C55E 14%, transparent); }
.aihub-dealspot__score--good { color: #3B82F6; background: color-mix(in srgb, #3B82F6 14%, transparent); }
.aihub-dealspot__score--average { color: #F59E0B; background: color-mix(in srgb, #F59E0B 14%, transparent); }
.aihub-dealspot__score--weak { color: #EF4444; background: color-mix(in srgb, #EF4444 14%, transparent); }
.aihub-dealspot__details { font-size: 0.85rem; font-weight: 600; }
.aihub-dealspot__chips { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.65rem; }
.aihub-dealspot__chip { display: inline-flex; align-items: center; font-size: 0.8rem; font-weight: 700; border-radius: 999px; padding: 0.22rem 0.7rem; }
.aihub-dealspot__chip--save { color: #0c0c14; background: linear-gradient(120deg, #FBBF24, #F59E0B); }
.aihub-dealspot__chip--bonus { color: #22C55E; background: color-mix(in srgb, #22C55E 12%, transparent); border: 1px solid color-mix(in srgb, #22C55E 40%, transparent); }
.aihub-dealspot__chip--price { color: var(--aihub-text); background: color-mix(in srgb, var(--aihub-surface, #14141f) 60%, transparent); border: 1px solid var(--aihub-border, rgba(255, 255, 255, 0.14)); }
.aihub-dealspot__cta { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; flex: 0 0 auto; }
.aihub-dealspot__cta .aihub-cta { font-size: 1rem; padding: 0.8rem 1.6rem; box-shadow: 0 8px 22px color-mix(in srgb, var(--aihub-primary) 28%, transparent); }
.aihub-dealspot__note { font-size: 0.7rem; color: var(--aihub-muted); }
@media (max-width: 640px) {
	.aihub-dealspot--v2 { padding: 1.1rem 1.1rem 1.3rem; }
	.aihub-dealspot--v2 .aihub-dealspot__logo { width: 50px; height: 50px; }
	.aihub-dealspot--v2 .aihub-dealspot__body h2 { font-size: 1.12rem; }
	.aihub-dealspot__cta { width: 100%; }
	.aihub-dealspot__cta .aihub-cta { width: 100%; text-align: center; }
}
