
/*
 * ============================================================
 * TAX PRO TOOLS HUB — MASTER STYLESHEET
 * File: tph-hub-v2.css
 * Version: 4.0.0
 * Scope: Loaded ONLY on /tax-pro-tools/* pages
 *
 * v4.0.0 CHANGES:
 * - CRITICAL FIX: bare h1-h6, p, li, td now get correct fonts
 *   (theme ALS Hauss was winning because we only had .tph-h2 etc.)
 * - CRITICAL FIX: Google Fonts URL updated to Roboto Condensed+Roboto
 * - CRITICAL FIX: Comments hidden via CSS + PHP filter
 * - Fixed H2 size (was 16px from theme, now clamp 1.5-2.25rem)
 * - Fixed body font (was system default, now Roboto 16px/1.7)
 * - Fixed content max-width (prose capped at 760px)
 * - Improved section spacing and visual rhythm
 * - Premium card/table/FAQ polish
 * - Mobile-first responsive improvements
 * ============================================================
 */

/* ============================================================
   SECTION 1 — DESIGN TOKENS
   ============================================================ */
.tph-hub-page {
	/* Color palette */
	--tph-navy: #1e1e5e;
	--tph-navy-dark: #141440;
	--tph-navy-light: #2d2d7a;
	--tph-yellow: #f6b820;
	--tph-yellow-dark: #d4a01a;
	--tph-yellow-light: #fdd96a;
	--tph-white: #fff;
	--tph-off-white: #f8f9fa;
	--tph-light-gray: #e9ecef;
	--tph-mid-gray: #6c757d;
	--tph-dark-gray: #343a40;
	--tph-text-primary: #121212;
	--tph-text-secondary: #495057;
	--tph-text-muted: #868e96;
	--tph-green: #28a745;
	--tph-green-light: #d4edda;
	--tph-red: #dc3545;
	--tph-red-light: #f8d7da;
	--tph-blue: #0d6efd;
	--tph-blue-light: #cce5ff;
	--tph-purple: #6f42c1;
	--tph-purple-light: #e2d9f3;
	--tph-orange: #fd7e14;
	--tph-orange-light: #ffe5d0;
	/* Typography */
	--tph-font-headline: "Roboto Condensed", "Arial Narrow", Arial, sans-serif;
	--tph-font-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--tph-font-mono: "Courier New", Courier, monospace;
	/* Font sizes */
	--tph-text-xs: .75rem;
	--tph-text-sm: .875rem;
	--tph-text-base: 1rem;
	--tph-text-md: 1.125rem;
	--tph-text-lg: 1.25rem;
	--tph-text-xl: 1.5rem;
	--tph-text-2xl: 1.875rem;
	--tph-text-3xl: 2.25rem;
	--tph-text-4xl: 3rem;
	--tph-text-5xl: 3.5rem;
	/* Font weights */
	--tph-weight-regular: 400;
	--tph-weight-medium: 500;
	--tph-weight-semibold: 600;
	--tph-weight-bold: 700;
	--tph-weight-black: 900;
	/* Line heights */
	--tph-leading-tight: 1.2;
	--tph-leading-snug: 1.35;
	--tph-leading-normal: 1.5;
	--tph-leading-relaxed: 1.7;
	/* Spacing — 8px base grid */
	--tph-space-1: 4px;
	--tph-space-2: 8px;
	--tph-space-3: 12px;
	--tph-space-4: 16px;
	--tph-space-5: 20px;
	--tph-space-6: 24px;
	--tph-space-8: 32px;
	--tph-space-10: 40px;
	--tph-space-12: 48px;
	--tph-space-16: 64px;
	--tph-space-20: 80px;
	--tph-space-24: 96px;
	/* Border radius */
	--tph-radius-sm: 4px;
	--tph-radius-md: 8px;
	--tph-radius-lg: 12px;
	--tph-radius-xl: 16px;
	--tph-radius-full: 9999px;
	/* Shadows */
	--tph-shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);
	--tph-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);
	--tph-shadow-md: 0 4px 12px rgba(0, 0, 0, .1);
	--tph-shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);
	--tph-shadow-xl: 0 16px 48px rgba(0, 0, 0, .14);
	/* Transitions */
	--tph-transition-fast: 150ms ease;
	--tph-transition-normal: 250ms ease;
	--tph-transition-slow: 400ms ease;
	/* Container widths */
	--tph-container-max: 1200px;
	--tph-container-prose: 760px;
	--tph-container-narrow: 840px;
	--tph-container-wide: 1400px;
	/* Z-index */
	--tph-z-base: 1;
	--tph-z-raised: 10;
	--tph-z-overlay: 100;
	--tph-z-modal: 1000;
	--tph-z-sticky: 1100;
}

/* ============================================================
   SECTION 2 — BASE RESET & OVERFLOW PROTECTION
   ============================================================ */
.tph-hub-page {
	overflow-x: hidden;
}

.tph-hub-page *, .tph-hub-page *::before, .tph-hub-page *::after {
	box-sizing: border-box;
}

.tph-hub-page img, .tph-hub-page video, .tph-hub-page iframe, .tph-hub-page embed, .tph-hub-page object {
	max-width: 100%;
	height: auto;
	display: block;
}

.tph-hub-page table {
	max-width: 100%;
	word-break: break-word;
}

/* ============================================================
   SECTION 3 — TYPOGRAPHY SYSTEM
   CRITICAL: These bare element rules override the theme's
   ALS Hauss font. Without these, theme wins on h2, p, li etc.
   ============================================================ */

/* Base font for all text elements */
.tph-hub-page p, .tph-hub-page li, .tph-hub-page td, .tph-hub-page th, .tph-hub-page label, .tph-hub-page blockquote {
	font-family: var(--tph-font-body) !important;
}

.tph-hub-page p {
	font-size: var(--tph-text-base);
	line-height: var(--tph-leading-relaxed);
	color: var(--tph-text-primary);
	margin: 0 0 var(--tph-space-5) 0;
}

.tph-hub-page li {
	font-size: var(--tph-text-base);
	line-height: var(--tph-leading-relaxed);
	color: var(--tph-text-primary);
	margin-bottom: var(--tph-space-2);
}

/* Headline overrides — beat theme specificity with !important */
.tph-hub-page h1, .tph-hub-page h2, .tph-hub-page h3 {
	font-family: var(--tph-font-headline) !important;
	font-weight: var(--tph-weight-bold) !important;
	line-height: var(--tph-leading-tight) !important;
	color: var(--tph-navy) !important;
	text-transform: uppercase;
	letter-spacing: .01em;
}

.tph-hub-page h4, .tph-hub-page h5, .tph-hub-page h6 {
	font-family: var(--tph-font-body) !important;
	font-weight: var(--tph-weight-semibold) !important;
	line-height: var(--tph-leading-snug) !important;
	color: var(--tph-text-primary) !important;
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page h1 {
	font-size: clamp(2rem, 5vw, var(--tph-text-5xl)) !important;
	font-weight: var(--tph-weight-black) !important;
	margin: 0 0 var(--tph-space-6) 0;
}

.tph-hub-page h2 {
	font-size: clamp(1.5rem, 3vw, var(--tph-text-3xl)) !important;
	margin: 0 0 var(--tph-space-5) 0;
}

.tph-hub-page h3 {
	font-size: clamp(1.2rem, 2.5vw, var(--tph-text-2xl)) !important;
	margin: 0 0 var(--tph-space-4) 0;
}

.tph-hub-page h4 {
	font-size: var(--tph-text-lg) !important;
	margin: 0 0 var(--tph-space-3) 0;
}

.tph-hub-page h5, .tph-hub-page h6 {
	font-size: var(--tph-text-base) !important;
	margin: 0 0 var(--tph-space-2) 0;
}

/* Hero h1 — white on navy */
.tph-hub-page .tph-hero h1, .tph-hub-page .tph-hero .tph-hero__title {
	color: var(--tph-white) !important;
	font-size: clamp(2rem, 5vw, 3.5rem) !important;
	font-weight: var(--tph-weight-black) !important;
	letter-spacing: -.01em;
}

/* Section headings on white/gray backgrounds */
.tph-hub-page .tph-section--white h2, .tph-hub-page .tph-section--gray h2, .tph-hub-page .tph-section--off-white h2 {
	color: var(--tph-navy) !important;
}

/* CTA banner h2 on navy */
.tph-hub-page .tph-cta-banner h2, .tph-hub-page .tph-section--navy h2 {
	color: var(--tph-white) !important;
}

/* Named typography classes (BEM) */
.tph-hub-page .tph-h1 {
	font-family: var(--tph-font-headline) !important;
	font-size: clamp(2rem, 5vw, var(--tph-text-5xl)) !important;
	font-weight: var(--tph-weight-black) !important;
	line-height: var(--tph-leading-tight) !important;
	color: var(--tph-navy) !important;
	text-transform: uppercase;
	letter-spacing: -.01em;
	margin: 0 0 var(--tph-space-6) 0;
}

.tph-hub-page .tph-h2 {
	font-family: var(--tph-font-headline) !important;
	font-size: clamp(1.5rem, 3vw, var(--tph-text-3xl)) !important;
	font-weight: var(--tph-weight-bold) !important;
	line-height: var(--tph-leading-tight) !important;
	color: var(--tph-navy) !important;
	text-transform: uppercase;
	letter-spacing: .01em;
	margin: 0 0 var(--tph-space-5) 0;
}

.tph-hub-page .tph-h3 {
	font-family: var(--tph-font-headline) !important;
	font-size: clamp(1.2rem, 2.5vw, var(--tph-text-2xl)) !important;
	font-weight: var(--tph-weight-bold) !important;
	line-height: var(--tph-leading-snug) !important;
	color: var(--tph-navy) !important;
	text-transform: uppercase;
	margin: 0 0 var(--tph-space-4) 0;
}

.tph-hub-page .tph-h4 {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-lg) !important;
	font-weight: var(--tph-weight-semibold) !important;
	line-height: var(--tph-leading-snug) !important;
	color: var(--tph-text-primary) !important;
	text-transform: none;
	margin: 0 0 var(--tph-space-3) 0;
}

.tph-hub-page .tph-h5 {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-base) !important;
	font-weight: var(--tph-weight-semibold) !important;
	line-height: var(--tph-leading-snug) !important;
	color: var(--tph-text-primary) !important;
	text-transform: none;
	margin: 0 0 var(--tph-space-2) 0;
}

/* Body text variants */
.tph-hub-page .tph-body {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-base);
	font-weight: var(--tph-weight-regular);
	line-height: var(--tph-leading-relaxed);
	color: var(--tph-text-primary);
}

.tph-hub-page .tph-text-lead {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-lg);
	font-weight: var(--tph-weight-regular);
	line-height: var(--tph-leading-relaxed);
	color: var(--tph-text-secondary);
}

.tph-hub-page .tph-text-sm {
	font-size: var(--tph-text-sm);
	line-height: var(--tph-leading-normal);
}

.tph-hub-page .tph-text-xs {
	font-size: var(--tph-text-xs);
	line-height: var(--tph-leading-normal);
}

.tph-hub-page .tph-text-muted {
	color: var(--tph-text-muted);
}

.tph-hub-page .tph-text-secondary {
	color: var(--tph-text-secondary);
}

/* Links */
.tph-hub-page .tph-link {
	color: var(--tph-navy);
	text-decoration: underline;
	text-decoration-color: var(--tph-yellow);
	text-underline-offset: 3px;
	font-weight: var(--tph-weight-medium);
	transition: color var(--tph-transition-fast);
}

.tph-hub-page .tph-link:hover {
	color: var(--tph-yellow-dark);
}

/* ============================================================
   SECTION 4 — HIDE COMMENTS (belt-and-suspenders with PHP)
   ============================================================ */
.tph-hub-page #comments, .tph-hub-page .comments-area, .tph-hub-page #respond, .tph-hub-page .comment-respond, .tph-hub-page .comment-form, .tph-hub-page #commentform, .tph-hub-page .wp-block-comments, .tph-hub-page .comment-list, .tph-hub-page .comments-title {
	display: none !important;
}

/* ============================================================
   SECTION 5 — CONTAINER SYSTEM
   ============================================================ */
.tph-hub-page .tph-container {
	width: 100%;
	max-width: var(--tph-container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--tph-space-6);
	padding-right: var(--tph-space-6);
}

.tph-hub-page .tph-container--prose {
	max-width: var(--tph-container-prose);
}

.tph-hub-page .tph-container--narrow {
	max-width: var(--tph-container-narrow);
}

.tph-hub-page .tph-container--wide {
	max-width: var(--tph-container-wide);
}

.tph-hub-page .tph-container--full {
	max-width: 100%;
}

/* Section spacing */
.tph-hub-page .tph-section {
	padding-top: var(--tph-space-16);
	padding-bottom: var(--tph-space-16);
}

.tph-hub-page .tph-section--sm {
	padding-top: var(--tph-space-10);
	padding-bottom: var(--tph-space-10);
}

.tph-hub-page .tph-section--lg {
	padding-top: var(--tph-space-24);
	padding-bottom: var(--tph-space-24);
}

.tph-hub-page .tph-section--white {
	background: var(--tph-white);
}

.tph-hub-page .tph-section--gray {
	background: var(--tph-off-white);
}

.tph-hub-page .tph-section--off-white {
	background: var(--tph-off-white);
}

.tph-hub-page .tph-section--navy {
	background-color: var(--tph-navy);
	color: var(--tph-white);
}

.tph-hub-page .tph-section--yellow {
	background-color: var(--tph-yellow);
}

/* ============================================================
   SECTION 6 — BUTTON SYSTEM
   ============================================================ */
.tph-hub-page .tph-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--tph-space-2);
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-bold);
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: 14px 28px;
	border-radius: var(--tph-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color var(--tph-transition-fast), color var(--tph-transition-fast), transform var(--tph-transition-fast), box-shadow var(--tph-transition-fast);
	white-space: nowrap;
	line-height: 1;
}

.tph-hub-page .tph-btn--primary {
	background-color: var(--tph-yellow);
	color: var(--tph-navy) !important;
	border-color: var(--tph-yellow);
}

.tph-hub-page .tph-btn--primary:hover {
	background-color: var(--tph-yellow-dark);
	border-color: var(--tph-yellow-dark);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(246, 184, 32, .35);
}

.tph-hub-page .tph-btn--secondary {
	background-color: transparent;
	color: var(--tph-navy) !important;
	border-color: var(--tph-navy);
}

.tph-hub-page .tph-btn--secondary:hover {
	background-color: var(--tph-navy);
	color: var(--tph-white) !important;
}

.tph-hub-page .tph-btn--ghost {
	background-color: transparent;
	color: var(--tph-white) !important;
	border-color: rgba(255, 255, 255, .6);
}

.tph-hub-page .tph-btn--ghost:hover {
	background-color: rgba(255, 255, 255, .1);
	border-color: var(--tph-white);
}

.tph-hub-page .tph-btn--sm {
	font-size: var(--tph-text-xs);
	padding: 8px 16px;
}

.tph-hub-page .tph-btn--lg {
	font-size: var(--tph-text-base);
	padding: 16px 36px;
}

.tph-hub-page .tph-btn--full {
	width: 100%;
}

/* Shorthand aliases */
.tph-hub-page .tph-btn-primary {
	display: inline-block;
	background: var(--tph-yellow);
	color: var(--tph-navy) !important;
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-bold);
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 14px 28px;
	border-radius: var(--tph-radius-sm);
	text-decoration: none !important;
	transition: background var(--tph-transition-fast), transform var(--tph-transition-fast);
	cursor: pointer;
	border: none;
	line-height: 1;
}

.tph-hub-page .tph-btn-primary:hover {
	background: var(--tph-yellow-dark);
	transform: translateY(-1px);
	color: var(--tph-navy) !important;
}

.tph-hub-page .tph-btn-secondary {
	display: inline-block;
	background: transparent;
	color: var(--tph-navy) !important;
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-bold);
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 12px 24px;
	border-radius: var(--tph-radius-sm);
	border: 2px solid var(--tph-navy);
	text-decoration: none !important;
	transition: all var(--tph-transition-fast);
	cursor: pointer;
}

.tph-hub-page .tph-btn-secondary:hover {
	background: var(--tph-navy);
	color: var(--tph-white) !important;
}

/* ============================================================
   SECTION 7 — BADGE SYSTEM
   ============================================================ */
.tph-hub-page .tph-badge {
	display: inline-flex;
	align-items: center;
	font-family: var(--tph-font-body) !important;
	font-size: .65rem;
	font-weight: var(--tph-weight-bold);
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: var(--tph-radius-sm);
	white-space: nowrap;
	line-height: 1;
}

.tph-hub-page .tph-badge--yellow {
	background-color: var(--tph-yellow);
	color: var(--tph-navy);
}

.tph-hub-page .tph-badge--navy {
	background-color: var(--tph-navy);
	color: var(--tph-white);
}

.tph-hub-page .tph-badge--green {
	background-color: var(--tph-green-light);
	color: #1a6b2e;
}

.tph-hub-page .tph-badge--red {
	background-color: var(--tph-red-light);
	color: #8b1a24;
}

.tph-hub-page .tph-badge--gray {
	background-color: var(--tph-light-gray);
	color: var(--tph-mid-gray);
}

.tph-hub-page .tph-badge--blue {
	background-color: var(--tph-blue-light);
	color: #0a4fa0;
}

.tph-hub-page .tph-badge--purple {
	background-color: var(--tph-purple-light);
	color: #4a2a8a;
}

/* ============================================================
   SECTION 8 — BREADCRUMB
   ============================================================ */
.tph-hub-page .tph-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0;
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm);
	color: var(--tph-text-muted);
	margin-bottom: var(--tph-space-4);
	padding: var(--tph-space-3) 0;
}

.tph-hub-page .tph-breadcrumb__item {
	display: flex;
	align-items: center;
}

.tph-hub-page .tph-breadcrumb__link {
	color: var(--tph-text-muted);
	text-decoration: none;
	transition: color var(--tph-transition-fast);
}

.tph-hub-page .tph-breadcrumb__link:hover {
	color: var(--tph-navy);
}

.tph-hub-page .tph-breadcrumb__separator {
	color: var(--tph-text-muted);
	font-size: var(--tph-text-sm);
	margin: 0 6px;
	user-select: none;
	opacity: .7;
}

.tph-hub-page .tph-breadcrumb__current {
	color: var(--tph-text-secondary);
	font-weight: var(--tph-weight-medium);
}

/* ============================================================
   SECTION 9 — CARD SYSTEM
   ============================================================ */
.tph-hub-page .tph-card {
	background-color: var(--tph-white);
	border: 1px solid var(--tph-light-gray);
	border-radius: var(--tph-radius-md);
	padding: var(--tph-space-6);
	transition: box-shadow var(--tph-transition-normal), transform var(--tph-transition-normal);
}

.tph-hub-page .tph-card:hover {
	box-shadow: var(--tph-shadow-md);
	transform: translateY(-2px);
}

.tph-hub-page .tph-card--flat:hover {
	box-shadow: var(--tph-shadow-sm);
	transform: none;
}

.tph-hub-page .tph-card--navy {
	background-color: var(--tph-navy);
	border-color: var(--tph-navy-dark);
	color: var(--tph-white);
}

.tph-hub-page .tph-card--yellow {
	background-color: var(--tph-yellow);
	border-color: var(--tph-yellow-dark);
	color: var(--tph-navy);
}

/* Card sub-elements */
.tph-hub-page .tph-card__icon {
	font-size: 2rem;
	margin-bottom: var(--tph-space-3);
	display: block;
}

.tph-hub-page .tph-card__title {
	font-family: var(--tph-font-headline) !important;
	font-size: 1.05rem !important;
	font-weight: var(--tph-weight-bold) !important;
	color: var(--tph-navy) !important;
	text-transform: uppercase;
	letter-spacing: .03em;
	margin: 0 0 var(--tph-space-3) 0;
}

.tph-hub-page .tph-card__title a {
	color: var(--tph-navy);
	text-decoration: none;
}

.tph-hub-page .tph-card__title a:hover {
	color: var(--tph-yellow-dark);
}

.tph-hub-page .tph-card__body {
	font-size: var(--tph-text-sm) !important;
	color: var(--tph-text-secondary) !important;
	line-height: var(--tph-leading-relaxed) !important;
	margin: 0 0 var(--tph-space-3) 0;
}

.tph-hub-page .tph-card__meta {
	font-size: var(--tph-text-xs);
	font-weight: var(--tph-weight-bold);
	color: var(--tph-navy);
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 0 0 var(--tph-space-3) 0;
}

.tph-hub-page .tph-card__link {
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-bold);
	color: var(--tph-yellow-dark);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.tph-hub-page .tph-card__link:hover {
	color: var(--tph-navy);
}

.tph-hub-page .tph-card__summary {
	font-size: var(--tph-text-sm);
	color: rgba(255, 255, 255, .85);
	line-height: var(--tph-leading-relaxed);
	margin: 0;
}

/* Card grid */
.tph-hub-page .tph-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--tph-space-6);
	margin-top: var(--tph-space-8);
}

@media (max-width: 960px) {
	.tph-hub-page .tph-card-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.tph-hub-page .tph-card-grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   SECTION 10 — PRODUCT CARD COMPONENT
   ============================================================ */
.tph-hub-page .tph-product-card {
	display: flex;
	flex-direction: column;
	background-color: var(--tph-white);
	border: 1px solid var(--tph-light-gray);
	border-radius: var(--tph-radius-md);
	padding: var(--tph-space-6);
	transition: box-shadow var(--tph-transition-normal), transform var(--tph-transition-normal);
	height: 100%;
}

.tph-hub-page .tph-product-card:hover {
	box-shadow: var(--tph-shadow-md);
	transform: translateY(-2px);
}

.tph-hub-page .tph-product-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--tph-space-4);
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-product-card__logo {
	width: 48px;
	height: 48px;
	object-fit: contain;
	border-radius: var(--tph-radius-sm);
	border: 1px solid var(--tph-light-gray);
	flex-shrink: 0;
}

.tph-hub-page .tph-product-card__name {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-lg) !important;
	font-weight: var(--tph-weight-semibold) !important;
	color: var(--tph-navy) !important;
	margin: 0;
	line-height: var(--tph-leading-snug);
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page .tph-product-card__tagline {
	font-size: var(--tph-text-sm);
	color: var(--tph-text-secondary);
	margin: var(--tph-space-1) 0 0 0;
}

.tph-hub-page .tph-product-card__rating {
	display: flex;
	align-items: center;
	gap: var(--tph-space-2);
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-product-card__rating-score {
	font-weight: var(--tph-weight-bold);
	color: var(--tph-navy);
	font-size: var(--tph-text-sm);
}

.tph-hub-page .tph-product-card__stars {
	color: var(--tph-yellow);
	font-size: var(--tph-text-sm);
}

.tph-hub-page .tph-product-card__rating-count {
	font-size: var(--tph-text-xs);
	color: var(--tph-text-muted);
}

.tph-hub-page .tph-product-card__description {
	font-size: var(--tph-text-sm) !important;
	color: var(--tph-text-secondary) !important;
	line-height: var(--tph-leading-relaxed) !important;
	margin-bottom: var(--tph-space-4);
	flex: 1;
}

.tph-hub-page .tph-product-card__price {
	font-family: var(--tph-font-headline) !important;
	font-size: var(--tph-text-xl) !important;
	font-weight: var(--tph-weight-black) !important;
	color: var(--tph-navy) !important;
	margin-bottom: var(--tph-space-1);
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page .tph-product-card__price-label {
	font-size: var(--tph-text-xs);
	color: var(--tph-text-muted);
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-product-card__footer {
	margin-top: auto;
	padding-top: var(--tph-space-4);
	border-top: 1px solid var(--tph-light-gray);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tph-space-3);
}

.tph-hub-page .tph-product-card__cta {
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-bold);
	color: var(--tph-navy);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: var(--tph-space-1);
	transition: color var(--tph-transition-fast);
}

.tph-hub-page .tph-product-card__cta:hover {
	color: var(--tph-yellow-dark);
}

/* ============================================================
   SECTION 11 — VERDICT / REVIEW COMPONENT
   ============================================================ */
.tph-hub-page .tph-verdict {
	background: var(--tph-white);
	border: 1px solid var(--tph-light-gray);
	border-radius: var(--tph-radius-lg);
	overflow: hidden;
	margin-bottom: var(--tph-space-8);
	box-shadow: var(--tph-shadow-sm);
}

.tph-hub-page .tph-verdict__header {
	background: var(--tph-navy);
	color: var(--tph-white);
	padding: var(--tph-space-5) var(--tph-space-8);
	display: flex;
	align-items: center;
	gap: var(--tph-space-3);
}

.tph-hub-page .tph-verdict__header-title {
	font-family: var(--tph-font-headline) !important;
	font-size: var(--tph-text-xl) !important;
	font-weight: var(--tph-weight-black) !important;
	color: var(--tph-white) !important;
	text-transform: uppercase;
	letter-spacing: .03em;
	margin: 0;
	line-height: 1;
}

.tph-hub-page .tph-verdict__body {
	padding: var(--tph-space-8);
}

/* Pros/Cons grid */
.tph-hub-page .tph-pros-cons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--tph-space-5);
	margin-bottom: var(--tph-space-6);
}

.tph-hub-page .tph-pros, .tph-hub-page .tph-cons {
	padding: var(--tph-space-6);
	border-radius: var(--tph-radius-md);
}

.tph-hub-page .tph-pros {
	background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
	border: 1px solid rgba(34, 197, 94, .2);
}

.tph-hub-page .tph-cons {
	background: linear-gradient(135deg, #fff5f5 0%, #fee2e2 100%);
	border: 1px solid rgba(239, 68, 68, .2);
}

.tph-hub-page .tph-pros__title, .tph-hub-page .tph-cons__title {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-xs) !important;
	font-weight: var(--tph-weight-bold) !important;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin: 0 0 var(--tph-space-4) 0;
	color: inherit;
}

.tph-hub-page .tph-pros__title {
	color: #15803d !important;
}

.tph-hub-page .tph-cons__title {
	color: #b91c1c !important;
}

.tph-hub-page .tph-pros__list, .tph-hub-page .tph-cons__list {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	gap: var(--tph-space-3);
}

.tph-hub-page .tph-pros__list li, .tph-hub-page .tph-cons__list li {
	font-size: var(--tph-text-sm) !important;
	color: var(--tph-text-primary) !important;
	line-height: var(--tph-leading-normal) !important;
	padding-left: var(--tph-space-6) !important;
	position: relative;
	margin-bottom: 0 !important;
}

.tph-hub-page .tph-pros__list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #15803d;
	font-weight: var(--tph-weight-bold);
	font-size: .9rem;
}

.tph-hub-page .tph-cons__list li::before {
	content: "✗";
	position: absolute;
	left: 0;
	color: #b91c1c;
	font-weight: var(--tph-weight-bold);
	font-size: .9rem;
}

/* Bottom Line box */
.tph-hub-page .tph-bottom-line {
	background: var(--tph-off-white);
	border: 1px solid var(--tph-light-gray);
	border-left: 4px solid var(--tph-yellow);
	border-radius: 0 var(--tph-radius-md) var(--tph-radius-md) 0;
	padding: var(--tph-space-5) var(--tph-space-8);
}

.tph-hub-page .tph-bottom-line__label {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-xs) !important;
	font-weight: var(--tph-weight-bold) !important;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--tph-yellow-dark) !important;
	margin: 0 0 var(--tph-space-2) 0;
}

.tph-hub-page .tph-bottom-line__text {
	font-size: var(--tph-text-base) !important;
	color: var(--tph-text-primary) !important;
	line-height: var(--tph-leading-relaxed) !important;
	margin: 0 !important;
	font-style: italic;
}

@media (max-width: 700px) {
	.tph-hub-page .tph-pros-cons {
		grid-template-columns: 1fr;
	}
	
	.tph-hub-page .tph-verdict__body {
		padding: var(--tph-space-5);
	}
	
	.tph-hub-page .tph-verdict__header {
		padding: var(--tph-space-4) var(--tph-space-5);
	}
}

/* ============================================================
   SECTION 12 — PRICING TABLE
   ============================================================ */
.tph-hub-page .tph-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--tph-radius-md);
	border: 1px solid var(--tph-light-gray);
	margin-bottom: var(--tph-space-3);
	box-shadow: var(--tph-shadow-xs);
}

.tph-hub-page .tph-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--tph-text-sm);
}

.tph-hub-page .tph-table thead {
	background-color: var(--tph-navy);
	color: var(--tph-white);
}

.tph-hub-page .tph-table thead th {
	padding: var(--tph-space-4) var(--tph-space-5);
	text-align: left;
	font-family: var(--tph-font-body) !important;
	font-weight: var(--tph-weight-semibold) !important;
	font-size: var(--tph-text-xs) !important;
	text-transform: uppercase;
	letter-spacing: .06em;
	white-space: nowrap;
	border-bottom: 2px solid var(--tph-navy-dark);
	color: var(--tph-white) !important;
}

.tph-hub-page .tph-table tbody tr {
	border-bottom: 1px solid var(--tph-light-gray);
	transition: background-color var(--tph-transition-fast);
}

.tph-hub-page .tph-table tbody tr:last-child {
	border-bottom: none;
}

.tph-hub-page .tph-table tbody tr:nth-child(even) {
	background-color: var(--tph-off-white);
}

.tph-hub-page .tph-table tbody tr:hover {
	background-color: #eef2ff;
}

.tph-hub-page .tph-table tbody td {
	padding: var(--tph-space-4) var(--tph-space-5);
	color: var(--tph-text-primary) !important;
	vertical-align: middle;
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm) !important;
}

.tph-hub-page .tph-table tbody td:first-child {
	font-weight: var(--tph-weight-semibold);
}

.tph-hub-page .tph-table .tph-check {
	color: var(--tph-green);
}

.tph-hub-page .tph-table .tph-cross {
	color: var(--tph-red);
}

.tph-hub-page .tph-table .tph-partial {
	color: var(--tph-orange);
}

/* Sticky first column */
.tph-hub-page .tph-table--sticky-col thead th:first-child, .tph-hub-page .tph-table--sticky-col tbody td:first-child {
	position: sticky;
	left: 0;
	background-color: inherit;
	z-index: var(--tph-z-raised);
	border-right: 1px solid var(--tph-light-gray);
}

.tph-hub-page .tph-table--sticky-col thead th:first-child {
	background-color: var(--tph-navy);
}

.tph-hub-page .tph-table-source {
	font-size: var(--tph-text-xs);
	color: var(--tph-text-muted);
	margin-top: var(--tph-space-2);
	font-style: italic;
}

/* ============================================================
   SECTION 13 — FAQ ACCORDION
   ============================================================ */
.tph-hub-page .tph-faq {
	border-top: 2px solid var(--tph-light-gray);
}

.tph-hub-page .tph-faq__item {
	border-bottom: 1px solid var(--tph-light-gray);
}

.tph-hub-page .tph-faq__question {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-base) !important;
	font-weight: var(--tph-weight-semibold) !important;
	color: var(--tph-navy) !important;
	margin: 0;
	padding: var(--tph-space-5) 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tph-space-4);
	list-style: none;
	user-select: none;
	text-transform: none;
	letter-spacing: 0;
	line-height: var(--tph-leading-snug) !important;
}

.tph-hub-page .tph-faq__question::-webkit-details-marker {
	display: none;
}

.tph-hub-page .tph-faq__question::after {
	content: "+";
	font-size: var(--tph-text-xl);
	font-weight: var(--tph-weight-regular);
	color: var(--tph-yellow-dark);
	flex-shrink: 0;
	transition: transform var(--tph-transition-fast);
	font-family: var(--tph-font-body) !important;
}

.tph-hub-page .tph-faq__item[open] .tph-faq__question::after {
	transform: rotate(45deg);
}

.tph-hub-page .tph-faq__answer {
	font-size: var(--tph-text-base) !important;
	color: var(--tph-text-secondary) !important;
	line-height: var(--tph-leading-relaxed) !important;
	padding: 0 0 var(--tph-space-6) 0;
	max-width: 720px;
}

.tph-hub-page .tph-faq__answer p {
	color: var(--tph-text-secondary) !important;
	font-size: var(--tph-text-base) !important;
}

/* ============================================================
   SECTION 14 — CTA COMPONENTS
   ============================================================ */
.tph-hub-page .tph-cta-inline {
	background-color: var(--tph-off-white);
	border-left: 4px solid var(--tph-yellow);
	border-radius: 0 var(--tph-radius-md) var(--tph-radius-md) 0;
	padding: var(--tph-space-6) var(--tph-space-8);
	margin: var(--tph-space-8) 0;
}

.tph-hub-page .tph-cta-inline__label {
	font-size: var(--tph-text-xs);
	font-weight: var(--tph-weight-bold);
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--tph-yellow-dark);
	margin-bottom: var(--tph-space-2);
}

.tph-hub-page .tph-cta-inline__title {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-lg) !important;
	font-weight: var(--tph-weight-semibold) !important;
	color: var(--tph-navy) !important;
	margin: 0 0 var(--tph-space-3) 0;
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page .tph-cta-inline__body {
	font-size: var(--tph-text-sm);
	color: var(--tph-text-secondary);
	margin: 0 0 var(--tph-space-4) 0;
	line-height: var(--tph-leading-relaxed);
}

/* Full-width CTA banner */
.tph-hub-page .tph-cta-banner {
	background-color: var(--tph-navy);
	color: var(--tph-white);
	padding: var(--tph-space-16) var(--tph-space-6);
	text-align: center;
}

.tph-hub-page .tph-cta-banner__content {
	max-width: 700px;
	margin: 0 auto;
	text-align: center;
}

.tph-hub-page .tph-cta-banner__eyebrow {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-xs) !important;
	font-weight: var(--tph-weight-bold) !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--tph-yellow) !important;
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-cta-banner__title {
	font-family: var(--tph-font-headline) !important;
	font-size: clamp(1.75rem, 4vw, var(--tph-text-4xl)) !important;
	font-weight: var(--tph-weight-black) !important;
	text-transform: uppercase;
	color: var(--tph-white) !important;
	margin: 0 0 var(--tph-space-5) 0;
	line-height: var(--tph-leading-tight) !important;
}

.tph-hub-page .tph-cta-banner__body {
	font-size: var(--tph-text-md);
	color: rgba(255, 255, 255, .85);
	line-height: var(--tph-leading-relaxed);
	margin: 0 auto var(--tph-space-8);
	max-width: 560px;
}

.tph-hub-page .tph-cta-banner__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--tph-space-4);
	flex-wrap: wrap;
}

/* ============================================================
   SECTION 15 — HERO COMPONENT
   ============================================================ */
.tph-hub-page .tph-hero {
	background-color: var(--tph-navy);
	color: var(--tph-white);
	padding: var(--tph-space-16) 0;
	position: relative;
	overflow: hidden;
}

.tph-hub-page .tph-hero::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: radial-gradient(ellipse at 70% 50%, rgba(246, 184, 32, .06) 0%, transparent 60%);
	pointer-events: none;
}

.tph-hub-page .tph-hero__eyebrow {
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-xs) !important;
	font-weight: var(--tph-weight-bold) !important;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--tph-yellow) !important;
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-hero__subtitle, .tph-hub-page .tph-hero__lead {
	font-size: var(--tph-text-md);
	color: rgba(255, 255, 255, .85);
	line-height: var(--tph-leading-relaxed);
	margin: 0 0 var(--tph-space-8) 0;
	max-width: 560px;
}

.tph-hub-page .tph-hero__meta {
	font-size: var(--tph-text-xs);
	color: rgba(255, 255, 255, .5);
	margin-top: var(--tph-space-6);
}

/* Hero 2-column grid */
.tph-hub-page .tph-hero__grid {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: var(--tph-space-12);
	align-items: center;
}

.tph-hub-page .tph-hero__left, .tph-hub-page .tph-hero__right {
	min-width: 0;
}

.tph-hub-page .tph-hero__right .tph-card--navy, .tph-hub-page .tph-hero-card {
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: var(--tph-radius-lg);
	padding: var(--tph-space-8);
	backdrop-filter: blur(8px);
}

/* Stat grid inside hero */
.tph-hub-page .tph-stat-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--tph-space-3);
	margin: var(--tph-space-5) 0;
}

.tph-hub-page .tph-stat-box {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: var(--tph-radius-md);
	padding: var(--tph-space-4) var(--tph-space-5);
	text-align: center;
}

.tph-hub-page .tph-stat-box__value {
	font-family: var(--tph-font-headline) !important;
	font-size: 1.75rem !important;
	font-weight: var(--tph-weight-black) !important;
	color: var(--tph-yellow) !important;
	line-height: 1;
	margin-bottom: 4px;
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page .tph-stat-box__label {
	font-size: var(--tph-text-xs);
	color: rgba(255, 255, 255, .75);
	font-weight: var(--tph-weight-medium);
	text-transform: uppercase;
	letter-spacing: .05em;
}

@media (max-width: 900px) {
	.tph-hub-page .tph-hero__grid {
		grid-template-columns: 1fr;
	}
	
	.tph-hub-page .tph-hero__right {
		display: none;
	}
}

/* ============================================================
   SECTION 16 — STAR RATING
   ============================================================ */
.tph-hub-page .tph-rating {
	display: flex;
	align-items: center;
	gap: var(--tph-space-2);
}

.tph-hub-page .tph-rating__score {
	font-family: var(--tph-font-headline) !important;
	font-size: var(--tph-text-4xl) !important;
	font-weight: var(--tph-weight-black) !important;
	color: var(--tph-navy) !important;
	line-height: 1;
	text-transform: none;
	letter-spacing: 0;
}

.tph-hub-page .tph-rating__stars {
	display: flex;
	gap: 2px;
}

.tph-hub-page .tph-rating__star {
	color: var(--tph-yellow);
	font-size: var(--tph-text-xl);
}

.tph-hub-page .tph-rating__star--empty {
	color: var(--tph-light-gray);
}

.tph-hub-page .tph-rating__label {
	font-size: var(--tph-text-sm);
	color: var(--tph-text-muted);
}

/* ============================================================
   SECTION 17 — LAST UPDATED INDICATOR
   ============================================================ */
.tph-hub-page .tph-last-updated {
	display: inline-flex;
	align-items: center;
	gap: var(--tph-space-2);
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-xs);
	color: var(--tph-text-muted);
	font-weight: var(--tph-weight-medium);
	padding: var(--tph-space-1) var(--tph-space-3);
	background-color: var(--tph-off-white);
	border: 1px solid var(--tph-light-gray);
	border-radius: var(--tph-radius-full);
}

.tph-hub-page .tph-last-updated::before {
	content: "●";
	color: var(--tph-green);
	font-size: 8px;
}

/* ============================================================
   SECTION 18 — EYEBROW / LABEL TEXT
   ============================================================ */
.tph-hub-page .tph-eyebrow {
	font-family: var(--tph-font-body) !important;
	font-size: .7rem !important;
	font-weight: var(--tph-weight-bold) !important;
	color: var(--tph-yellow-dark);
	text-transform: uppercase;
	letter-spacing: .12em;
	margin: 0 0 var(--tph-space-4) 0;
}

/* ============================================================
   SECTION 19 — COMPARE LINKS
   ============================================================ */
.tph-hub-page .tph-compare-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tph-space-3);
	margin-top: var(--tph-space-4);
}

.tph-hub-page .tph-compare-links a {
	display: inline-flex;
	align-items: center;
	gap: var(--tph-space-2);
	font-family: var(--tph-font-body) !important;
	font-size: var(--tph-text-sm);
	font-weight: var(--tph-weight-semibold);
	color: var(--tph-navy);
	text-decoration: none;
	padding: var(--tph-space-2) var(--tph-space-4);
	border: 1.5px solid var(--tph-navy);
	border-radius: var(--tph-radius-full);
	transition: all var(--tph-transition-fast);
}

.tph-hub-page .tph-compare-links a:hover {
	background: var(--tph-navy);
	color: var(--tph-white);
}

/* ============================================================
   SECTION 20 — DISCLAIMER
   ============================================================ */
.tph-hub-page .tph-disclaimer {
	font-size: var(--tph-text-xs);
	color: var(--tph-text-muted);
	line-height: var(--tph-leading-relaxed);
	border-top: 1px solid var(--tph-light-gray);
	padding-top: var(--tph-space-6);
	margin-top: 0;
	font-style: italic;
}

/* ============================================================
   SECTION 21 — UTILITY CLASSES
   ============================================================ */
.tph-hub-page .tph-text-center {
	text-align: center;
}

.tph-hub-page .tph-text-left {
	text-align: left;
}

.tph-hub-page .tph-text-right {
	text-align: right;
}

.tph-hub-page .tph-flex {
	display: flex;
}

.tph-hub-page .tph-flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}

.tph-hub-page .tph-flex-between {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.tph-hub-page .tph-flex-wrap {
	flex-wrap: wrap;
}

.tph-hub-page .tph-gap-2 {
	gap: var(--tph-space-2);
}

.tph-hub-page .tph-gap-3 {
	gap: var(--tph-space-3);
}

.tph-hub-page .tph-gap-4 {
	gap: var(--tph-space-4);
}

.tph-hub-page .tph-gap-6 {
	gap: var(--tph-space-6);
}

.tph-hub-page .tph-gap-8 {
	gap: var(--tph-space-8);
}

.tph-hub-page .tph-mt-4 {
	margin-top: var(--tph-space-4);
}

.tph-hub-page .tph-mt-6 {
	margin-top: var(--tph-space-6);
}

.tph-hub-page .tph-mt-8 {
	margin-top: var(--tph-space-8);
}

.tph-hub-page .tph-mb-4 {
	margin-bottom: var(--tph-space-4);
}

.tph-hub-page .tph-mb-6 {
	margin-bottom: var(--tph-space-6);
}

.tph-hub-page .tph-mb-8 {
	margin-bottom: var(--tph-space-8);
}

.tph-hub-page .tph-divider {
	border: none;
	border-top: 1px solid var(--tph-light-gray);
	margin: var(--tph-space-8) 0;
}

/* ============================================================
   SECTION 22 — MOBILE RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
	.tph-hub-page .tph-section {
		padding-top: var(--tph-space-10);
		padding-bottom: var(--tph-space-10);
	}
	
	.tph-hub-page .tph-container {
		padding-left: var(--tph-space-4);
		padding-right: var(--tph-space-4);
	}
	
	.tph-hub-page .tph-hero {
		padding: var(--tph-space-10) 0;
	}
	
	.tph-hub-page .tph-hero h1, .tph-hub-page .tph-hero .tph-hero__title {
		font-size: clamp(1.75rem, 7vw, 2.5rem) !important;
	}
	
	.tph-hub-page h2 {
		font-size: clamp(1.3rem, 5vw, 1.75rem) !important;
	}
	
	.tph-hub-page .tph-cta-banner {
		padding: var(--tph-space-10) var(--tph-space-4);
	}
	
	.tph-hub-page .tph-cta-banner__title {
		font-size: clamp(1.5rem, 6vw, 2.25rem) !important;
	}
	
	.tph-hub-page .tph-table {
		font-size: var(--tph-text-xs);
	}
	
	.tph-hub-page .tph-table thead th, .tph-hub-page .tph-table tbody td {
		padding: var(--tph-space-3) var(--tph-space-3);
	}
	
	.tph-hub-page .tph-bottom-line {
		padding: var(--tph-space-5);
	}
	
	.tph-hub-page .tph-compare-links {
		gap: var(--tph-space-2);
	}
}

@media (max-width: 480px) {
	.tph-hub-page .tph-hero h1, .tph-hub-page .tph-hero .tph-hero__title {
		font-size: 1.75rem !important;
	}
	
	.tph-hub-page h2 {
		font-size: 1.3rem !important;
	}
	
	.tph-hub-page .tph-card-grid {
		gap: var(--tph-space-4);
	}
}

/* ============================================================
   SECTION 23 — ISOLATION VERIFICATION
   ============================================================ */
.tph-hub-page::before {
	content: "tph-hub-css-v4.0.0";
	display: none;
}

/* ── Category Map Grid (TPH Root) ─────────────────────────────────────────── */
.tph-category-map {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
	gap: 12px;
	margin: 16px 0 32px;
}

.tph-category-map__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 18px 12px 14px;
	background: #fff;
	border: 1.5px solid #e9ecef;
	border-radius: 10px;
	text-decoration: none !important;
	transition: border-color .18s, box-shadow .18s, transform .15s;
	text-align: center;
	min-height: 90px;
	cursor: pointer;
}

.tph-category-map__item:hover {
	border-color: #f6b820 !important;
	box-shadow: 0 4px 16px rgba(246, 184, 32, .18);
	transform: translateY(-2px);
	text-decoration: none !important;
}

.tph-category-map__icon {
	font-size: 1.5rem;
	line-height: 1;
	display: block;
}

.tph-category-map__icon img {
	width: 26px !important;
	height: 26px !important;
	display: inline-block !important;
	vertical-align: middle !important;
	margin: 0 !important;
}

.tph-category-map__label {
	font-family: "Barlow Condensed", Montserrat, sans-serif;
	font-size: .82rem;
	font-weight: 700;
	color: #1e1e5e;
	text-transform: uppercase;
	letter-spacing: .02em;
	line-height: 1.2;
}

.tph-category-map__count {
	font-family: "DM Sans", sans-serif;
	font-size: .7rem;
	color: #6b7280;
	font-weight: 500;
}

@media (max-width: 600px) {
	.tph-category-map {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ============================================================
   TPH HUB — MISSING COMPONENT CSS
   Appended to tph-hub-v2.css to cover all HTML classes
   used across all 10 Tax Pro Tools hub pages
   ============================================================ */

/* ── HERO SPLIT LAYOUT ──────────────────────────────────── */
.tph-hero {
	background: #1e1e5e;
	color: #fff;
	padding: 60px 0 48px;
}

.tph-hero-inner {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 40px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}

.tph-hero-left .tph-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f6b820;
	margin-bottom: 12px;
}

.tph-hero-left h1 {
	font-family: "Barlow Condensed", "Montserrat", sans-serif;
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 800;
	line-height: 1.1;
	color: #fff;
	text-transform: uppercase;
	margin: 0 0 16px;
}

.tph-subtitle {
	font-size: 1rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, .82);
	margin-bottom: 20px;
	max-width: 560px;
}

.tph-meta-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.tph-meta-badges span {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .2);
	color: rgba(255, 255, 255, .85);
	font-size: .72rem;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 4px;
	font-family: "Montserrat", sans-serif;
	letter-spacing: .04em;
}

.tph-hero-right {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 12px;
	padding: 24px;
}

.tph-quick-picks {
	color: #fff;
}

.tph-quick-picks h3 {
	font-family: "Montserrat", sans-serif;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #f6b820;
	margin: 0 0 14px;
}

.tph-quick-picks ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.tph-quick-picks ul li {
	font-size: .88rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .88);
	padding: 6px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.tph-quick-picks ul li:last-child {
	border-bottom: none;
}

.tph-quick-picks ul li strong {
	color: #f6b820;
	font-weight: 700;
}

@media (max-width: 768px) {
	.tph-hero-inner {
		grid-template-columns: 1fr;
		padding: 0 20px;
	}
	
	.tph-hero {
		padding: 40px 0 32px;
	}
}

/* ── COMPARISON TABLE ───────────────────────────────────── */
.tph-compare-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .88rem;
	margin: 24px 0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}

.tph-compare-table thead tr {
	background: #1e1e5e;
	color: #fff;
}

.tph-compare-table thead th {
	padding: 12px 16px;
	font-family: "Montserrat", sans-serif;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-align: left;
	color: #fff;
}

.tph-compare-table tbody tr {
	border-bottom: 1px solid #e9ecef;
	transition: background .15s;
}

.tph-compare-table tbody tr:hover {
	background: #f8f9fa;
}

.tph-compare-table tbody tr:nth-child(even) {
	background: #fafbfc;
}

.tph-compare-table tbody tr:nth-child(even):hover {
	background: #f0f2f5;
}

.tph-compare-table td {
	padding: 12px 16px;
	vertical-align: top;
	color: #2d2d2d;
	line-height: 1.5;
}

.tph-compare-table td:first-child {
	font-weight: 700;
	color: #1e1e5e;
	white-space: nowrap;
}

@media (max-width: 768px) {
	.tph-compare-table {
		font-size: .8rem;
	}
	
	.tph-compare-table td, .tph-compare-table th {
		padding: 8px 10px;
	}
}

/* ── SOFTWARE CARDS GRID ────────────────────────────────── */
.tph-software-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
	margin: 24px 0;
}

.tph-software-card {
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 12px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transition: box-shadow .2s, transform .2s;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}

.tph-software-card:hover {
	box-shadow: 0 8px 24px rgba(30, 30, 94, .1);
	transform: translateY(-2px);
}

.tph-card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.tph-card-header h3 {
	font-family: "Montserrat", sans-serif;
	font-size: 1.1rem;
	font-weight: 800;
	color: #1e1e5e;
	margin: 0;
	line-height: 1.3;
}

.tph-card-body {
	flex: 1;
}

.tph-card-body p {
	font-size: .9rem;
	line-height: 1.6;
	color: #4a4a6a;
	margin: 0 0 12px;
}

.tph-card-pros-cons {
	background: #f8f9fa;
	border-radius: 8px;
	padding: 12px 16px;
	margin-top: 8px;
}

.tph-card-pros-cons h4 {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1e1e5e;
	margin: 8px 0 4px;
	font-family: "Montserrat", sans-serif;
}

.tph-card-pros-cons h4:first-child {
	margin-top: 0;
}

.tph-card-pros-cons ul {
	list-style: none;
	padding: 0;
	margin: 0 0 8px;
}

.tph-card-pros-cons ul:last-child {
	margin-bottom: 0;
}

.tph-card-pros-cons li {
	font-size: .82rem;
	color: #4a4a6a;
	padding: 2px 0 2px 16px;
	position: relative;
	line-height: 1.5;
}

.tph-card-pros-cons li::before {
	content: "•";
	position: absolute;
	left: 4px;
	color: #1e1e5e;
	font-weight: 700;
}

.tph-card-footer {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	padding-top: 8px;
	border-top: 1px solid #e9ecef;
}

@media (max-width: 768px) {
	.tph-software-grid {
		grid-template-columns: 1fr;
	}
}

/* ── BUTTONS ────────────────────────────────────────────── */
.tph-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 9px 18px;
	background: #1e1e5e;
	color: #fff !important;
	font-family: "Montserrat", sans-serif;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none !important;
	border-radius: 6px;
	transition: background .15s, transform .15s;
	white-space: nowrap;
}

.tph-button:hover {
	background: #2d2d8e;
	transform: translateY(-1px);
	color: #fff !important;
}

.tph-button-secondary {
	background: transparent;
	color: #1e1e5e !important;
	border: 2px solid #1e1e5e;
}

.tph-button-secondary:hover {
	background: #1e1e5e;
	color: #fff !important;
}

/* ── BADGES ─────────────────────────────────────────────── */
.tph-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 4px;
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	background: #e9ecef;
	color: #4a4a6a;
}

.tph-badge-primary {
	background: #1e1e5e;
	color: #fff;
}

.tph-badge-yellow {
	background: #f6b820;
	color: #121212;
}

.tph-badge-green {
	background: #0a7c59;
	color: #fff;
}

.tph-badge-blue {
	background: #1565c0;
	color: #fff;
}

.tph-badge-purple {
	background: #6a1b9a;
	color: #fff;
}

/* ── INLINE CTA (mid-content) ───────────────────────────── */
.tph-inline-cta {
	background: linear-gradient(135deg, #1e1e5e 0%, #2d2d8e 100%);
	border-radius: 12px;
	padding: 32px;
	margin: 32px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.tph-inline-cta-content {}

.tph-inline-cta-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f6b820;
	margin-bottom: 6px;
}

.tph-inline-cta-headline {
	font-family: "Montserrat", sans-serif;
	font-size: 1.2rem;
	font-weight: 800;
	color: #fff;
	margin: 0 0 8px;
	line-height: 1.3;
}

.tph-inline-cta-sub {
	font-size: .9rem;
	color: rgba(255, 255, 255, .8);
	margin: 0;
	max-width: 480px;
}

.tph-inline-cta-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	flex-shrink: 0;
}

.tph-cta-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 24px;
	background: #f6b820;
	color: #121212 !important;
	font-family: "Montserrat", sans-serif;
	font-size: .85rem;
	font-weight: 800;
	text-decoration: none !important;
	border-radius: 6px;
	transition: background .15s, transform .15s;
	white-space: nowrap;
}

.tph-cta-btn:hover {
	background: #ffd04a;
	transform: translateY(-1px);
	color: #121212 !important;
}

.tph-cta-btn-secondary {
	background: transparent;
	color: rgba(255, 255, 255, .85) !important;
	border: 1.5px solid rgba(255, 255, 255, .4);
}

.tph-cta-btn-secondary:hover {
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
}

.tph-inline-cta-note {
	font-size: .75rem;
	color: rgba(255, 255, 255, .6);
}

@media (max-width: 768px) {
	.tph-inline-cta {
		flex-direction: column;
		padding: 24px;
	}
	
	.tph-inline-cta-actions {
		width: 100%;
	}
	
	.tph-cta-btn {
		width: 100%;
		justify-content: center;
	}
}

/* ── COMPACT CTA ────────────────────────────────────────── */
.tph-compact-cta {
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	border-left: 4px solid #f6b820;
	border-radius: 8px;
	padding: 20px 24px;
	margin: 24px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}

.tph-compact-cta-text {}

.tph-compact-cta-headline {
	font-family: "Montserrat", sans-serif;
	font-size: .95rem;
	font-weight: 800;
	color: #1e1e5e;
	margin: 0 0 4px;
}

.tph-compact-cta-sub {
	font-size: .85rem;
	color: #4a4a6a;
	margin: 0;
}

.tph-compact-cta-note {
	font-size: .75rem;
	color: #6b7280;
	margin-top: 4px;
}

.tph-compact-cta-actions {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex-shrink: 0;
}

@media (max-width: 768px) {
	.tph-compact-cta {
		flex-direction: column;
	}
}

/* ── CONSIDERATION CARDS ────────────────────────────────── */
.tph-2col, .tph-3col {
	display: grid;
	gap: 20px;
	margin: 20px 0;
}

.tph-2col {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.tph-3col {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.tph-consideration-card {
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 10px;
	padding: 20px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
}

.tph-consideration-card h3 {
	font-family: "Montserrat", sans-serif;
	font-size: .9rem;
	font-weight: 800;
	color: #1e1e5e;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.tph-consideration-card p {
	font-size: .88rem;
	line-height: 1.6;
	color: #4a4a6a;
	margin: 0;
}

/* ── INSIGHT BOX ────────────────────────────────────────── */
.tph-insight-box {
	background: #eef2ff;
	border: 1px solid #c7d2fe;
	border-left: 4px solid #1e1e5e;
	border-radius: 8px;
	padding: 18px 20px;
	margin: 20px 0;
}

.tph-insight-box p {
	font-size: .9rem;
	line-height: 1.6;
	color: #1e1e5e;
	margin: 0;
}

.tph-callout {
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-left: 4px solid #f6b820;
	border-radius: 8px;
	padding: 16px 20px;
	margin: 20px 0;
	font-size: .9rem;
	line-height: 1.6;
	color: #78350f;
}

/* ── FAQ ACCORDION ──────────────────────────────────────── */
.tph-faq-list {
	margin: 24px 0;
	border: 1px solid #e9ecef;
	border-radius: 10px;
	overflow: hidden;
}

.tph-faq-item {
	border-bottom: 1px solid #e9ecef;
}

.tph-faq-item:last-child {
	border-bottom: none;
}

.tph-faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	background: #fff;
	cursor: pointer;
	font-family: "Montserrat", sans-serif;
	font-size: .95rem;
	font-weight: 700;
	color: #1e1e5e;
	transition: background .15s;
	border: none;
	width: 100%;
	text-align: left;
	gap: 12px;
}

.tph-faq-question:hover {
	background: #f8f9fa;
}

.tph-faq-question::after {
	content: "+";
	font-size: 1.4rem;
	font-weight: 400;
	color: #f6b820;
	flex-shrink: 0;
	transition: transform .2s;
}

.tph-faq-item.open .tph-faq-question::after {
	transform: rotate(45deg);
}

.tph-faq-answer {
	display: none;
	padding: 0 20px 18px;
	font-size: .9rem;
	line-height: 1.7;
	color: #4a4a6a;
	background: #fafbfc;
}

.tph-faq-item.open .tph-faq-answer {
	display: block;
}

/* ── HUB LINK CARDS ─────────────────────────────────────── */
.tph-hub-links {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin: 24px 0;
}

.tph-hub-link-card {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 18px;
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 10px;
	text-decoration: none !important;
	transition: box-shadow .15s, transform .15s, border-color .15s;
	color: #1e1e5e !important;
}

.tph-hub-link-card:hover {
	box-shadow: 0 4px 16px rgba(30, 30, 94, .1);
	transform: translateY(-2px);
	border-color: #1e1e5e;
	color: #1e1e5e !important;
}

.tph-hub-link-card strong {
	font-family: "Montserrat", sans-serif;
	font-size: .88rem;
	font-weight: 800;
	color: #1e1e5e;
	display: block;
}

.tph-hub-link-card span {
	font-size: .8rem;
	color: #6b7280;
	line-height: 1.4;
}

/* ── CHILD GRID (sub-pages) ─────────────────────────────── */
.tph-child-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 14px;
	margin: 20px 0;
}

.tph-child-card {
	display: block;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #e9ecef;
	border-radius: 8px;
	text-decoration: none !important;
	font-size: .85rem;
	font-weight: 600;
	color: #1e1e5e !important;
	transition: background .15s, border-color .15s;
	font-family: "Montserrat", sans-serif;
}

.tph-child-card:hover {
	background: #f0f2ff;
	border-color: #1e1e5e;
	color: #1e1e5e !important;
}

/* ── STICKY BAR ─────────────────────────────────────────── */
.tph-sticky-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: #1e1e5e;
	color: #fff;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	z-index: 999;
	box-shadow: 0 -4px 20px rgba(0, 0, 0, .15);
	flex-wrap: wrap;
}

.tph-sticky-bar-text {
	font-size: .9rem;
	color: rgba(255, 255, 255, .9);
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
}

.tph-sticky-bar-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.tph-sticky-bar-btn {
	display: inline-flex;
	align-items: center;
	padding: 9px 20px;
	background: #f6b820;
	color: #121212 !important;
	font-family: "Montserrat", sans-serif;
	font-size: .82rem;
	font-weight: 800;
	text-decoration: none !important;
	border-radius: 5px;
	white-space: nowrap;
	transition: background .15s;
}

.tph-sticky-bar-btn:hover {
	background: #ffd04a;
	color: #121212 !important;
}

.tph-sticky-bar-dismiss {
	background: none;
	border: none;
	color: rgba(255, 255, 255, .6);
	font-size: 1.1rem;
	cursor: pointer;
	padding: 4px 8px;
	line-height: 1;
}

.tph-sticky-bar-dismiss:hover {
	color: #fff;
}

@media (max-width: 768px) {
	.tph-sticky-bar {
		display: none !important;
	}
}

/* ── MASTER CTA (bottom of page) ────────────────────────── */
.tph-master-cta {
	background: linear-gradient(135deg, #1e1e5e 0%, #2d2d8e 100%);
	padding: 64px 32px;
	text-align: center;
	color: #fff;
}

.tph-master-cta .tph-content-wrap {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 32px;
}

.tph-cta-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f6b820;
	margin-bottom: 12px;
}

.tph-cta-headline {
	font-family: "Barlow Condensed", "Montserrat", sans-serif;
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 800;
	color: #fff;
	text-transform: uppercase;
	line-height: 1.1;
	margin: 0 0 12px;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.tph-cta-headline-accent {
	color: #f6b820;
}

.tph-cta-sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, .8);
	margin: 0 0 32px;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

.tph-cta-paths {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 20px;
	max-width: 1160px;
	margin: 32px auto;
	text-align: left;
}

.tph-cta-path-card {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 12px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: background .2s, border-color .2s;
}

.tph-cta-path-card:hover {
	background: rgba(255, 255, 255, .12);
	border-color: rgba(255, 255, 255, .3);
}

.tph-cta-path-featured {
	border-color: #f6b820;
	background: rgba(246, 184, 32, .08);
}

.tph-cta-path-featured-badge {
	display: inline-block;
	background: #f6b820;
	color: #121212;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 3px;
	font-family: "Montserrat", sans-serif;
}

.tph-cta-path-icon {
	font-size: 1.8rem;
}

.tph-cta-path-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #f6b820;
}

.tph-cta-path-title {
	font-family: "Montserrat", sans-serif;
	font-size: 1rem;
	font-weight: 800;
	color: #fff;
	margin: 0;
}

.tph-cta-path-body {
	font-size: .85rem;
	color: rgba(255, 255, 255, .75);
	line-height: 1.5;
	margin: 0;
}

.tph-cta-path-bullets {
	list-style: none;
	padding: 0;
	margin: 0;
}

.tph-cta-path-bullets li {
	font-size: .82rem;
	color: rgba(255, 255, 255, .75);
	padding: 3px 0 3px 16px;
	position: relative;
}

.tph-cta-path-bullets li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #f6b820;
	font-weight: 700;
}

.tph-cta-path-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 20px;
	border-radius: 6px;
	font-family: "Montserrat", sans-serif;
	font-size: .82rem;
	font-weight: 800;
	text-decoration: none !important;
	transition: background .15s, transform .15s;
	margin-top: auto;
}

.tph-cta-path-btn-primary {
	background: rgba(255, 255, 255, .15);
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .3);
}

.tph-cta-path-btn-primary:hover {
	background: rgba(255, 255, 255, .25);
	color: #fff !important;
}

.tph-cta-path-btn-featured {
	background: #f6b820;
	color: #121212 !important;
}

.tph-cta-path-btn-featured:hover {
	background: #ffd04a;
	color: #121212 !important;
	transform: translateY(-1px);
}

.tph-cta-path-note {
	font-size: .72rem;
	color: rgba(255, 255, 255, .5);
	margin-top: 4px;
}

.tph-cta-proof-strip {
	display: flex;
	justify-content: center;
	gap: 40px;
	flex-wrap: wrap;
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, .1);
	margin-top: 32px;
}

.tph-cta-proof-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.tph-cta-proof-num {
	font-family: "Barlow Condensed", "Montserrat", sans-serif;
	font-size: 2rem;
	font-weight: 800;
	color: #f6b820;
	line-height: 1;
}

.tph-cta-proof-label {
	font-size: .75rem;
	color: rgba(255, 255, 255, .65);
	text-align: center;
	font-family: "Montserrat", sans-serif;
}

.tph-cta-proof-divider {
	width: 1px;
	background: rgba(255, 255, 255, .15);
	align-self: stretch;
}

.tph-cta-trust-row {
	display: flex;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 16px;
}

.tph-cta-trust-item {
	font-size: .8rem;
	color: rgba(255, 255, 255, .65);
	display: flex;
	align-items: center;
	gap: 6px;
}

.tph-cta-trust-item::before {
	content: "✓";
	color: #f6b820;
	font-weight: 700;
}

/* ── FINAL CTA ──────────────────────────────────────────── */
.tph-final-cta {
	background: #f8f9fa;
	border-top: 3px solid #f6b820;
	padding: 48px 0;
	text-align: center;
}

.tph-final-cta-inner {
	max-width: 640px;
	margin: 0 auto;
	padding: 0 24px;
}

.tph-final-cta-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f6b820;
	margin-bottom: 10px;
}

.tph-final-cta-headline {
	font-family: "Montserrat", sans-serif;
	font-size: 1.6rem;
	font-weight: 800;
	color: #1e1e5e;
	margin: 0 0 12px;
	line-height: 1.2;
}

.tph-final-cta-sub {
	font-size: .95rem;
	color: #4a4a6a;
	margin: 0 0 24px;
	line-height: 1.6;
}

.tph-final-cta-actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* ── CTA BOTTOM STRIP ───────────────────────────────────── */
.tph-cta-bottom-strip {
	background: #1e1e5e;
	padding: 20px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.tph-cta-bottom-text {
	font-size: .9rem;
	color: rgba(255, 255, 255, .85);
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
}

.tph-cta-bottom-btn {
	display: inline-flex;
	align-items: center;
	padding: 10px 22px;
	background: #f6b820;
	color: #121212 !important;
	font-family: "Montserrat", sans-serif;
	font-size: .82rem;
	font-weight: 800;
	text-decoration: none !important;
	border-radius: 5px;
	white-space: nowrap;
	transition: background .15s;
}

.tph-cta-bottom-btn:hover {
	background: #ffd04a;
	color: #121212 !important;
}

/* ── DISCLAIMER ─────────────────────────────────────────── */
.tph-disclaimer {
	font-size: .78rem;
	color: #9ca3af;
	line-height: 1.5;
	padding: 16px 0;
	border-top: 1px solid #e9ecef;
	margin-top: 24px;
}

/* ── LINK COLOR OVERRIDE ────────────────────────────────── */
.tph-hub-page a:not([class]), .tph-hub-page .tph-content-wrap a:not(.tph-button):not(.tph-cta-btn):not(.tph-cta-path-btn):not(.tph-cta-bottom-btn):not(.tph-sticky-bar-btn):not(.tph-hub-link-card):not(.tph-child-card) {
	color: #1e1e5e;
	text-decoration: underline;
	text-decoration-color: rgba(30, 30, 94, .3);
}

.tph-hub-page a:not([class]):hover {
	color: #2d2d8e;
	text-decoration-color: #2d2d8e;
}

/* ── SECTION LAYOUT ─────────────────────────────────────── */
.tph-section {
	padding: 48px 0;
	background: #fff;
}

.tph-section-alt {
	background: #f8f9fa;
}

.tph-content-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}

.tph-divider-yellow {
	width: 40px;
	height: 4px;
	background: #f6b820;
	margin-bottom: 16px;
	border-radius: 2px;
}

.tph-eyebrow {
	font-family: "Montserrat", sans-serif;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f6b820;
	margin-bottom: 8px;
}

.tph-section h2 {
	font-family: "Barlow Condensed", "Montserrat", sans-serif;
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 800;
	color: #1e1e5e;
	text-transform: uppercase;
	margin: 0 0 24px;
	line-height: 1.15;
}

.tph-breadcrumb {
	font-size: .78rem;
	color: rgba(255, 255, 255, .6);
	margin-bottom: 8px;
	font-family: "Montserrat", sans-serif;
}

.tph-breadcrumb a {
	color: rgba(255, 255, 255, .6) !important;
	text-decoration: none !important;
}

.tph-breadcrumb a:hover {
	color: rgba(255, 255, 255, .9) !important;
}

.tph-breadcrumb span {
	color: rgba(255, 255, 255, .4);
	margin: 0 6px;
}

@media (max-width: 768px) {
	.tph-content-wrap {
		padding: 0 20px;
	}
	
	.tph-section {
		padding: 32px 0;
	}
}

/* ── FAQ JAVASCRIPT TOGGLE ──────────────────────────────── */

/* Handled by inline script in page content */

/* ============================================================
   TPH INLINE CTA — mid-content conversion block
   ============================================================ */
.tph-inline-cta {
	background: linear-gradient(135deg, #1e1e5e 0%, #2a2a7a 100%);
	border-radius: 12px;
	padding: 32px 40px;
	margin: 40px 0;
	display: flex;
	align-items: center;
	gap: 40px;
	border-left: 4px solid #f6b820;
}

.tph-inline-cta-content {
	flex: 1;
}

.tph-inline-cta-eyebrow {
	display: inline-block;
	background: rgba(246, 184, 32, .15);
	color: #f6b820;
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 4px;
	margin-bottom: 10px;
}

.tph-inline-cta-headline {
	font-family: "Barlow Condensed", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: .02em;
	margin: 0 0 8px 0;
	line-height: 1.2;
}

.tph-inline-cta-sub {
	font-family: "DM Sans", sans-serif;
	font-size: .9rem;
	color: rgba(255, 255, 255, .75);
	margin: 0;
	line-height: 1.5;
}

.tph-inline-cta-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	flex-shrink: 0;
}

.tph-inline-cta-note {
	font-family: "DM Sans", sans-serif;
	font-size: .75rem;
	color: rgba(255, 255, 255, .55);
	margin: 0;
}

/* ============================================================
   TPH CTA BUTTON — inline link styled as button
   ============================================================ */
.tph-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #f6b820;
	color: #121212 !important;
	font-family: "Montserrat", sans-serif;
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
	padding: 12px 24px;
	border-radius: 6px;
	text-decoration: none !important;
	transition: background .2s, transform .15s;
	white-space: nowrap;
}

.tph-cta-btn:hover {
	background: #e5a800;
	transform: translateY(-1px);
	color: #121212 !important;
	text-decoration: none !important;
}

/* ============================================================
   TPH COMPACT CTA — smaller inline conversion block
   ============================================================ */
.tph-compact-cta {
	background: #f8f9fa;
	border: 1px solid #e9ecef;
	border-left: 4px solid #f6b820;
	border-radius: 8px;
	padding: 24px 28px;
	margin: 32px 0;
	display: flex;
	align-items: center;
	gap: 24px;
}

.tph-compact-cta-content {
	flex: 1;
}

.tph-compact-cta-label {
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #1e1e5e;
	margin-bottom: 4px;
	display: block;
}

.tph-compact-cta-headline {
	font-family: "Barlow Condensed", sans-serif;
	font-size: 1.2rem;
	font-weight: 700;
	color: #1e1e5e;
	text-transform: uppercase;
	margin: 0 0 6px 0;
}

.tph-compact-cta-body {
	font-family: "DM Sans", sans-serif;
	font-size: .85rem;
	color: #495057;
	margin: 0;
}

.tph-compact-cta-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	flex-shrink: 0;
}

.tph-compact-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #1e1e5e;
	color: #fff !important;
	font-family: "Montserrat", sans-serif;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
	padding: 10px 20px;
	border-radius: 6px;
	text-decoration: none !important;
	transition: background .2s;
	white-space: nowrap;
}

.tph-compact-cta-btn:hover {
	background: #2a2a7a;
	color: #fff !important;
	text-decoration: none !important;
}

.tph-compact-cta-note {
	font-family: "DM Sans", sans-serif;
	font-size: .72rem;
	color: #868e96;
}

/* ============================================================
   TPH FINAL CTA — end-of-page conversion block
   ============================================================ */
.tph-final-cta {
	background: linear-gradient(135deg, #1e1e5e 0%, #2a2a7a 100%);
	border-radius: 16px;
	padding: 56px 48px;
	margin: 48px 0;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.tph-final-cta::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: #f6b820;
}

.tph-final-cta-eyebrow {
	display: inline-block;
	background: rgba(246, 184, 32, .15);
	color: #f6b820;
	font-family: "Montserrat", sans-serif;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: 4px;
	margin-bottom: 16px;
}

.tph-final-cta-headline {
	font-family: "Barlow Condensed", sans-serif;
	font-size: 2.2rem;
	font-weight: 800;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: .02em;
	margin: 0 0 12px 0;
	line-height: 1.1;
}

.tph-final-cta-sub {
	font-family: "DM Sans", sans-serif;
	font-size: 1rem;
	color: rgba(255, 255, 255, .75);
	margin: 0 auto 32px;
	max-width: 560px;
	line-height: 1.6;
}

.tph-final-cta-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}

.tph-final-cta-btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #f6b820;
	color: #121212 !important;
	font-family: "Montserrat", sans-serif;
	font-size: .85rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 16px 32px;
	border-radius: 8px;
	text-decoration: none !important;
	transition: background .2s, transform .15s;
}

.tph-final-cta-btn-primary:hover {
	background: #e5a800;
	transform: translateY(-2px);
	color: #121212 !important;
	text-decoration: none !important;
}

.tph-final-cta-btn-secondary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
	font-family: "Montserrat", sans-serif;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	padding: 16px 32px;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, .25);
	text-decoration: none !important;
	transition: background .2s;
}

.tph-final-cta-btn-secondary:hover {
	background: rgba(255, 255, 255, .18);
	color: #fff !important;
	text-decoration: none !important;
}

.tph-final-cta-note {
	font-family: "DM Sans", sans-serif;
	font-size: .75rem;
	color: rgba(255, 255, 255, .45);
	margin-top: 16px;
}

/* ============================================================
   RESPONSIVE OVERRIDES
   ============================================================ */
@media (max-width: 768px) {
	.tph-inline-cta {
		flex-direction: column;
		padding: 24px;
		gap: 20px;
	}
	
	.tph-compact-cta {
		flex-direction: column;
		gap: 16px;
	}
	
	.tph-final-cta {
		padding: 40px 24px;
	}
	
	.tph-final-cta-headline {
		font-size: 1.7rem;
	}
	
	.tph-final-cta-actions {
		flex-direction: column;
		align-items: stretch;
	}
}

/*
 * ============================================================
 * TPH HUB — PREMIUM COMPONENT ADDITIONS v1.0
 * Appended to tph-hub-v2.css
 * Fixes: tph-software-card, tph-section layout, link colors,
 *        hero upgrade, category grid, FAQ accordion, CTAs
 * ============================================================
 */

/* ── 1. GLOBAL LINK COLOR FIX ─────────────────────────────── */

/* Override WordPress default pink/red link color everywhere in hub */
.tph-hub-page a, .tph-hub-page a:link, .tph-hub-page a:visited {
	color: #1e1e5e !important;
	text-decoration: none !important;
}

.tph-hub-page a:hover, .tph-hub-page a:focus {
	color: #f6b820 !important;
	text-decoration: none !important;
}

/* ── 2. LAYOUT CONTAINER ──────────────────────────────────── */
.tph-hub-page .tph-container {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 32px;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-container {
		padding: 0 20px;
	}
}

/* ── 3. HERO UPGRADE ──────────────────────────────────────── */
.tph-hub-page .tph-hero {
	background: linear-gradient(135deg, #141440 0%, #1e1e5e 50%, #2d2d7a 100%) !important;
	padding: 72px 32px 64px !important;
	position: relative;
	overflow: hidden;
}

.tph-hub-page .tph-hero::after {
	content: "";
	position: absolute;
	top: -60px;
	right: -80px;
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(246, 184, 32, .12) 0%, transparent 70%);
	pointer-events: none;
}

.tph-hub-page .tph-hero__inner {
	max-width: 1160px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.tph-hub-page .tph-hero__eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: rgba(246, 184, 32, .15) !important;
	border: 1px solid rgba(246, 184, 32, .35) !important;
	color: #f6b820 !important;
	font-size: .72rem !important;
	font-weight: 700 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 5px 14px !important;
	border-radius: 100px !important;
	margin-bottom: 20px !important;
}

.tph-hub-page .tph-hero__title {
	font-size: clamp(2rem, 5vw, 3.25rem) !important;
	font-weight: 900 !important;
	color: #fff !important;
	line-height: 1.1 !important;
	margin: 0 auto 20px !important;
	max-width: 820px;
	text-transform: uppercase !important;
	letter-spacing: -.01em !important;
}

.tph-hub-page .tph-hero__subtitle, .tph-hub-page .tph-hero__lead {
	font-size: 1.1rem !important;
	color: rgba(255, 255, 255, .82) !important;
	line-height: 1.65 !important;
	max-width: 640px;
	margin: 0 auto 36px !important;
}

.tph-hub-page .tph-hero__stats {
	display: flex !important;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: center !important;
	margin: 0 auto 36px !important;
	max-width: 800px;
	padding-bottom: 32px !important;
	border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
}

.tph-hub-page .tph-hero__stat {
	display: flex !important;
	flex-direction: column;
	gap: 2px;
}

.tph-hub-page .tph-hero__stat-value {
	font-size: 1.75rem !important;
	font-weight: 900 !important;
	color: #f6b820 !important;
	line-height: 1 !important;
	font-family: "Barlow Condensed", "Roboto Condensed", sans-serif !important;
}

.tph-hub-page .tph-hero__stat-label {
	font-size: .75rem !important;
	color: rgba(255, 255, 255, .65) !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: .05em !important;
}

.tph-hub-page .tph-hero__actions {
	display: flex !important;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
}

.tph-hub-page .tph-hero__cta-primary {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	padding: 14px 28px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	letter-spacing: .01em;
	transition: background .18s, transform .15s, box-shadow .18s;
	box-shadow: 0 4px 16px rgba(246, 184, 32, .35);
}

.tph-hub-page .tph-hero__cta-primary:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 24px rgba(246, 184, 32, .45);
}

.tph-hub-page .tph-hero__cta-secondary {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	color: rgba(255, 255, 255, .85) !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, .35);
	padding-bottom: 2px;
	transition: color .15s, border-color .15s;
}

.tph-hub-page .tph-hero__cta-secondary:hover {
	color: #f6b820 !important;
	border-color: #f6b820;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-hero {
		padding: 48px 20px 40px !important;
	}
	
	.tph-hub-page .tph-hero__stats {
		gap: 20px;
	}
	
	.tph-hub-page .tph-hero__cta-primary {
		width: 100%;
		justify-content: center;
	}
}

/* ── 4. CATEGORY MAP GRID (PREMIUM) ──────────────────────── */
.tph-hub-page .tph-category-nav {
	background: #fff;
	padding: 48px 32px;
	border-bottom: 1px solid #e9ecef;
}

.tph-hub-page .tph-category-nav__inner {
	max-width: 1160px;
	margin: 0 auto;
}

.tph-hub-page .tph-category-nav__heading {
	font-size: .72rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .1em !important;
	color: #6b7280 !important;
	margin: 0 0 20px !important;
}

.tph-hub-page .tph-category-map {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 14px !important;
	max-width: 1160px !important;
	margin: 0 auto !important;
}

@media (max-width: 600px) {
	.tph-hub-page .tph-category-map {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 10px !important;
	}
	
	.tph-hub-page .tph-category-nav {
		padding: 32px 20px;
	}
}

.tph-hub-page .tph-category-map__item {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	padding: 20px 18px 16px !important;
	background: #fff !important;
	border: 1.5px solid #e9ecef !important;
	border-radius: 12px !important;
	text-decoration: none !important;
	transition: border-color .18s, box-shadow .18s, transform .15s !important;
	cursor: pointer !important;
	position: relative;
}

.tph-hub-page .tph-category-map__item:hover {
	border-color: #f6b820 !important;
	box-shadow: 0 4px 20px rgba(246, 184, 32, .18) !important;
	transform: translateY(-2px) !important;
	text-decoration: none !important;
	background: #fffdf5 !important;
}

.tph-hub-page .tph-category-map__icon {
	width: 36px !important;
	height: 36px !important;
	background: #f0f0f8 !important;
	border-radius: 8px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1.1rem !important;
	flex-shrink: 0;
}

.tph-hub-page .tph-category-map__icon img {
	width: 20px !important;
	height: 20px !important;
	display: block !important;
	margin: 0 !important;
}

.tph-hub-page .tph-category-map__label {
	font-family: "Barlow Condensed", "Roboto Condensed", sans-serif !important;
	font-size: .9rem !important;
	font-weight: 700 !important;
	color: #1e1e5e !important;
	text-transform: uppercase !important;
	letter-spacing: .03em !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.tph-hub-page .tph-category-map__count {
	font-size: .72rem !important;
	color: #6b7280 !important;
	font-weight: 500 !important;
	margin: 0 !important;
}

/* ── 5. SECTION LAYOUT ────────────────────────────────────── */
.tph-hub-page .tph-section {
	padding: 64px 32px !important;
}

.tph-hub-page .tph-section--alt {
	background: #f8f9fa !important;
}

.tph-hub-page .tph-section__inner {
	max-width: 1160px;
	margin: 0 auto;
}

.tph-hub-page .tph-section__header {
	max-width: 1160px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: 36px !important;
}

.tph-hub-page .tph-section__eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	font-size: .7rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .1em !important;
	color: #6b7280 !important;
	background: #f0f0f8 !important;
	padding: 4px 12px !important;
	border-radius: 100px !important;
	margin-bottom: 12px !important;
}

.tph-hub-page .tph-section__title {
	font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
	font-weight: 900 !important;
	color: #1e1e5e !important;
	line-height: 1.15 !important;
	text-transform: uppercase !important;
	margin: 0 0 12px !important;
	border-left: 4px solid #f6b820 !important;
	padding-left: 16px !important;
}

.tph-hub-page .tph-section__desc {
	font-size: 1rem !important;
	color: #495057 !important;
	line-height: 1.65 !important;
	max-width: 680px;
	margin: 0 !important;
}

.tph-hub-page .tph-section__footer-link {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	margin-top: 28px !important;
	font-weight: 700 !important;
	font-size: .9rem !important;
	color: #1e1e5e !important;
	text-decoration: none !important;
	border-bottom: 2px solid #f6b820 !important;
	padding-bottom: 2px;
	transition: color .15s;
	max-width: 1160px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: block !important;
}

.tph-hub-page .tph-section__footer-link:hover {
	color: #f6b820 !important;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-section {
		padding: 48px 20px !important;
	}
}

/* ── 6. SOFTWARE CARD (THE MISSING COMPONENT) ─────────────── */
.tph-hub-page .tph-software-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
	gap: 16px !important;
	max-width: 1160px !important;
	margin: 0 auto !important;
}

@media (max-width: 700px) {
	.tph-hub-page .tph-software-grid {
		grid-template-columns: 1fr !important;
	}
}

.tph-hub-page .tph-software-card {
	background: #fff !important;
	border: 1.5px solid #e9ecef !important;
	border-radius: 12px !important;
	padding: 24px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
	text-decoration: none !important;
	transition: border-color .18s, box-shadow .18s, transform .15s !important;
	position: relative;
	overflow: hidden;
}

.tph-hub-page .tph-software-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #1e1e5e, #f6b820);
	opacity: 0;
	transition: opacity .18s;
}

.tph-hub-page .tph-software-card:hover {
	border-color: #1e1e5e !important;
	box-shadow: 0 8px 32px rgba(30, 30, 94, .12) !important;
	transform: translateY(-2px) !important;
	text-decoration: none !important;
}

.tph-hub-page .tph-software-card:hover::before {
	opacity: 1;
}

.tph-hub-page .tph-software-card__badges {
	display: flex !important;
	flex-wrap: wrap;
	gap: 6px !important;
	margin-bottom: 4px !important;
}

.tph-hub-page .tph-software-card__name {
	font-family: "Barlow Condensed", "Roboto Condensed", sans-serif !important;
	font-size: 1.25rem !important;
	font-weight: 800 !important;
	color: #1e1e5e !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	text-decoration: none !important;
}

.tph-hub-page .tph-software-card__tagline {
	font-size: .82rem !important;
	font-weight: 600 !important;
	color: #f6b820 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
}

.tph-hub-page .tph-software-card__desc {
	font-size: .875rem !important;
	color: #495057 !important;
	line-height: 1.6 !important;
	margin: 0 !important;
	flex: 1;
}

.tph-hub-page .tph-software-card__cta {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	margin-top: 8px !important;
	font-size: .82rem !important;
	font-weight: 700 !important;
	color: #1e1e5e !important;
	text-decoration: none !important;
	padding: 8px 16px !important;
	background: #f0f0f8 !important;
	border-radius: 6px !important;
	align-self: flex-start;
	transition: background .15s, color .15s;
}

.tph-hub-page .tph-software-card__cta:hover {
	background: #1e1e5e !important;
	color: #fff !important;
}

/* Recommended card variant */
.tph-hub-page .tph-software-card--recommended {
	border-color: #f6b820 !important;
	background: linear-gradient(135deg, #fffdf5 0%, #fff 100%) !important;
}

.tph-hub-page .tph-software-card--recommended::before {
	opacity: 1;
}

/* ── 7. BADGE SYSTEM ──────────────────────────────────────── */
.tph-hub-page .tph-badge {
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	font-size: .65rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .06em !important;
	padding: 3px 8px !important;
	border-radius: 100px !important;
	white-space: nowrap;
}

.tph-hub-page .tph-badge--yellow {
	background: #fef3c7 !important;
	color: #92400e !important;
}

.tph-hub-page .tph-badge--green {
	background: #d1fae5 !important;
	color: #065f46 !important;
}

.tph-hub-page .tph-badge--navy, .tph-hub-page .tph-badge--blue {
	background: #eef2ff !important;
	color: #3730a3 !important;
}

.tph-hub-page .tph-badge--purple {
	background: #ede9fe !important;
	color: #5b21b6 !important;
}

.tph-hub-page .tph-badge--gray {
	background: #f3f4f6 !important;
	color: #374151 !important;
}

.tph-hub-page .tph-badge--red {
	background: #fee2e2 !important;
	color: #991b1b !important;
}

/* ── 8. FAQ ACCORDION (NEW CLASSES) ──────────────────────── */
.tph-hub-page .tph-faq-section {
	background: #f8f9fa;
	padding: 64px 32px;
	max-width: 1160px;
	margin-left: auto;
	margin-right: auto;
}

.tph-hub-page .tph-faq-section__inner {
	max-width: 860px;
	margin: 0 auto;
}

.tph-hub-page .tph-faq-section__heading {
	font-size: clamp(1.5rem, 3vw, 2rem) !important;
	font-weight: 900 !important;
	color: #1e1e5e !important;
	text-align: center !important;
	text-transform: uppercase !important;
	margin: 0 0 8px !important;
}

.tph-hub-page .tph-faq-section__subheading {
	font-size: .95rem !important;
	color: #6b7280 !important;
	text-align: center !important;
	margin: 0 0 40px !important;
}

.tph-hub-page .tph-faq-list {
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}

.tph-hub-page .tph-faq-item {
	background: #fff !important;
	border: 1.5px solid #e9ecef !important;
	border-radius: 10px !important;
	overflow: hidden;
	transition: border-color .18s, box-shadow .18s;
}

.tph-hub-page .tph-faq-item.open, .tph-hub-page .tph-faq-item:focus-within {
	border-color: #1e1e5e !important;
	box-shadow: 0 4px 16px rgba(30, 30, 94, .08) !important;
}

.tph-hub-page .tph-faq-question {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	width: 100% !important;
	padding: 20px 24px !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer !important;
	text-align: left !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1e1e5e !important;
	line-height: 1.4 !important;
	gap: 16px;
}

.tph-hub-page .tph-faq-question:hover {
	background: #f8f9fa !important;
}

.tph-hub-page .tph-faq-icon {
	width: 24px !important;
	height: 24px !important;
	background: #f0f0f8 !important;
	border-radius: 50% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	font-size: 1rem !important;
	color: #1e1e5e !important;
	font-weight: 700 !important;
	transition: background .15s, transform .2s;
}

.tph-hub-page .tph-faq-item.open .tph-faq-icon {
	background: #1e1e5e !important;
	color: #fff !important;
	transform: rotate(45deg);
}

.tph-hub-page .tph-faq-answer {
	padding: 0 24px 20px !important;
	font-size: .95rem !important;
	color: #374151 !important;
	line-height: 1.7 !important;
	display: none;
}

.tph-hub-page .tph-faq-item.open .tph-faq-answer {
	display: block !important;
}

.tph-hub-page .tph-faq-answer p {
	margin: 0 0 12px !important;
}

.tph-hub-page .tph-faq-answer p:last-child {
	margin: 0 !important;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-faq-section {
		padding: 48px 20px;
	}
	
	.tph-hub-page .tph-faq-question {
		padding: 16px 18px !important;
		font-size: .92rem !important;
	}
	
	.tph-hub-page .tph-faq-answer {
		padding: 0 18px 16px !important;
	}
}

/* ── 9. CTA BLOCKS ────────────────────────────────────────── */
.tph-hub-page .tph-cta-mid {
	background: linear-gradient(135deg, #1e1e5e 0%, #2d2d7a 100%);
	padding: 56px 32px;
	text-align: center;
}

.tph-hub-page .tph-cta-mid__inner {
	max-width: 680px;
	margin: 0 auto;
}

.tph-hub-page .tph-cta-mid__eyebrow {
	font-size: .7rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .1em !important;
	color: #f6b820 !important;
	margin: 0 0 12px !important;
}

.tph-hub-page .tph-cta-mid__title {
	font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
	font-weight: 900 !important;
	color: #fff !important;
	text-transform: uppercase !important;
	line-height: 1.15 !important;
	margin: 0 0 16px !important;
}

.tph-hub-page .tph-cta-mid__body {
	font-size: 1rem !important;
	color: rgba(255, 255, 255, .8) !important;
	line-height: 1.65 !important;
	margin: 0 0 28px !important;
}

.tph-hub-page .tph-cta-mid__btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	padding: 14px 32px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	box-shadow: 0 4px 16px rgba(246, 184, 32, .35);
	transition: background .15s, transform .15s;
}

.tph-hub-page .tph-cta-mid__btn:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
	transform: translateY(-1px);
}

/* CTA path blocks (existing class fix) */
.tph-hub-page .tph-cta-path-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 12px 24px !important;
	border-radius: 8px !important;
	font-weight: 700 !important;
	font-size: .9rem !important;
	text-decoration: none !important;
	transition: background .15s, transform .15s;
}

.tph-hub-page .tph-cta-path-btn-primary {
	background: #f6b820 !important;
	color: #1e1e5e !important;
}

.tph-hub-page .tph-cta-path-btn-primary:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
	transform: translateY(-1px);
}

.tph-hub-page .tph-cta-path-title {
	font-size: 1.1rem !important;
	font-weight: 800 !important;
	color: #fff !important;
	margin: 0 0 8px !important;
}

.tph-hub-page .tph-cta-path-eyebrow {
	font-size: .7rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
	color: #f6b820 !important;
	margin: 0 0 6px !important;
}

.tph-hub-page .tph-cta-path-body {
	font-size: .875rem !important;
	color: rgba(255, 255, 255, .75) !important;
	line-height: 1.6 !important;
	margin: 0 0 16px !important;
}

.tph-hub-page .tph-cta-path-bullets {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 20px !important;
}

.tph-hub-page .tph-cta-path-bullets li {
	font-size: .85rem !important;
	color: rgba(255, 255, 255, .8) !important;
	padding: 3px 0 !important;
	padding-left: 18px !important;
	position: relative;
}

.tph-hub-page .tph-cta-path-bullets li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #f6b820;
	font-weight: 700;
}

.tph-hub-page .tph-cta-proof-item {
	text-align: center;
}

.tph-hub-page .tph-cta-proof-num {
	font-size: 1.5rem !important;
	font-weight: 900 !important;
	color: #f6b820 !important;
	display: block;
}

.tph-hub-page .tph-cta-proof-label {
	font-size: .72rem !important;
	color: rgba(255, 255, 255, .65) !important;
	text-transform: uppercase !important;
	letter-spacing: .06em !important;
}

.tph-hub-page .tph-cta-proof-divider {
	width: 1px;
	background: rgba(255, 255, 255, .2);
	align-self: stretch;
}

/* ── 10. FOOTER TRANSITION ────────────────────────────────── */
.tph-hub-page .tph-footer-cta {
	background: #1e1e5e;
	padding: 56px 32px;
	text-align: center;
}

.tph-hub-page .tph-footer-cta__inner {
	max-width: 680px;
	margin: 0 auto;
}

.tph-hub-page .tph-footer-cta__title {
	font-size: clamp(1.5rem, 3vw, 2rem) !important;
	font-weight: 900 !important;
	color: #fff !important;
	text-transform: uppercase !important;
	margin: 0 0 12px !important;
}

.tph-hub-page .tph-footer-cta__body {
	font-size: .95rem !important;
	color: rgba(255, 255, 255, .75) !important;
	margin: 0 0 24px !important;
}

.tph-hub-page .tph-footer-cta__btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	padding: 14px 32px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
}

.tph-hub-page .tph-footer-cta__btn:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
}

/* ── 11. FAQ JAVASCRIPT TOGGLE ────────────────────────────── */

/* Handled via inline script in page content */

/* ── 12. MOBILE STICKY BAR REMOVAL ───────────────────────── */
@media (max-width: 768px) {
	.tph-hub-page .tph-sticky-bar, #tph-sticky-bar, .tph-sticky-cta {
		display: none !important;
	}
}

/* ── 13. SECTION ALTERNATING BACKGROUNDS ─────────────────── */
.tph-hub-page .tph-section:nth-child(even) {
	background: #f8f9fa;
}

.tph-hub-page .tph-section:nth-child(odd) {
	background: #fff;
}

/* Override for explicit color classes */
.tph-hub-page .tph-section--white {
	background: #fff !important;
}

.tph-hub-page .tph-section--gray {
	background: #f8f9fa !important;
}

.tph-hub-page .tph-section--navy {
	background: #1e1e5e !important;
}

/* ── 14. MASTER CTA SECTION ──────────────────────────────── */
.tph-hub-page .tph-master-cta {
	background: linear-gradient(135deg, #141440 0%, #1e1e5e 60%, #2d2d7a 100%) !important;
	padding: 72px 32px !important;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.tph-hub-page .tph-master-cta::before {
	content: "";
	position: absolute;
	top: -100px;
	left: 50%;
	transform: translateX(-50%);
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(246, 184, 32, .08) 0%, transparent 70%);
	pointer-events: none;
}

.tph-hub-page .tph-cta-eyebrow {
	display: inline-block !important;
	font-size: .68rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: .12em !important;
	color: #f6b820 !important;
	background: rgba(246, 184, 32, .12) !important;
	border: 1px solid rgba(246, 184, 32, .3) !important;
	padding: 4px 14px !important;
	border-radius: 100px !important;
	margin-bottom: 20px !important;
}

.tph-hub-page .tph-cta-headline {
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	font-weight: 900 !important;
	color: #fff !important;
	text-transform: uppercase !important;
	line-height: 1.1 !important;
	margin: 0 0 16px !important;
	max-width: 800px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.tph-hub-page .tph-cta-headline-accent {
	color: #f6b820 !important;
}

.tph-hub-page .tph-cta-sub {
	font-size: 1.05rem !important;
	color: rgba(255, 255, 255, .78) !important;
	line-height: 1.65 !important;
	max-width: 600px;
	margin: 0 auto 36px !important;
}

/* Proof strip */
.tph-hub-page .tph-cta-proof-strip {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: wrap;
	gap: 0 !important;
	margin: 0 auto 48px !important;
	max-width: 700px;
	background: rgba(255, 255, 255, .06) !important;
	border: 1px solid rgba(255, 255, 255, .12) !important;
	border-radius: 12px !important;
	padding: 20px 32px !important;
}

.tph-hub-page .tph-cta-proof-item {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	padding: 0 28px !important;
}

.tph-hub-page .tph-cta-proof-num {
	font-size: 1.75rem !important;
	font-weight: 900 !important;
	color: #f6b820 !important;
	font-family: "Barlow Condensed", "Roboto Condensed", sans-serif !important;
	line-height: 1 !important;
}

.tph-hub-page .tph-cta-proof-label {
	font-size: .68rem !important;
	color: rgba(255, 255, 255, .6) !important;
	text-transform: uppercase !important;
	letter-spacing: .06em !important;
	font-weight: 600 !important;
	white-space: nowrap;
}

.tph-hub-page .tph-cta-proof-divider {
	width: 1px !important;
	height: 40px !important;
	background: rgba(255, 255, 255, .18) !important;
	flex-shrink: 0;
}

@media (max-width: 600px) {
	.tph-hub-page .tph-cta-proof-strip {
		gap: 16px !important;
		padding: 16px !important;
	}
	
	.tph-hub-page .tph-cta-proof-divider {
		display: none !important;
	}
	
	.tph-hub-page .tph-cta-proof-item {
		padding: 0 12px !important;
	}
}

/* Path cards grid */
.tph-hub-page .tph-cta-paths {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	max-width: 1100px;
	margin: 0 auto 32px !important;
	text-align: left;
}

@media (max-width: 900px) {
	.tph-hub-page .tph-cta-paths {
		grid-template-columns: 1fr !important;
		max-width: 480px;
	}
}

.tph-hub-page .tph-cta-path-card {
	background: rgba(255, 255, 255, .06) !important;
	border: 1.5px solid rgba(255, 255, 255, .12) !important;
	border-radius: 14px !important;
	padding: 28px 24px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
	position: relative;
	transition: border-color .18s, background .18s;
}

.tph-hub-page .tph-cta-path-card:hover {
	border-color: rgba(246, 184, 32, .5) !important;
	background: rgba(255, 255, 255, .09) !important;
}

.tph-hub-page .tph-cta-path-featured {
	border-color: #f6b820 !important;
	background: rgba(246, 184, 32, .08) !important;
}

.tph-hub-page .tph-cta-path-featured-badge {
	position: absolute !important;
	top: -12px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-size: .62rem !important;
	font-weight: 800 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	padding: 3px 12px !important;
	border-radius: 100px !important;
	white-space: nowrap;
}

.tph-hub-page .tph-cta-path-icon {
	font-size: 1.5rem !important;
	line-height: 1 !important;
	margin-bottom: 4px !important;
}

.tph-hub-page .tph-cta-path-note {
	font-size: .72rem !important;
	color: rgba(255, 255, 255, .5) !important;
	margin: 0 !important;
	font-style: italic;
}

.tph-hub-page .tph-cta-path-btn-featured {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 12px 24px !important;
	border-radius: 8px !important;
	font-weight: 700 !important;
	font-size: .9rem !important;
	text-decoration: none !important;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	transition: background .15s, transform .15s;
}

.tph-hub-page .tph-cta-path-btn-featured:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
	transform: translateY(-1px);
}

/* Bottom strip */
.tph-hub-page .tph-cta-bottom-strip {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: wrap;
	gap: 20px !important;
	max-width: 900px;
	margin: 0 auto !important;
	padding: 24px 28px !important;
	background: rgba(255, 255, 255, .06) !important;
	border: 1px solid rgba(255, 255, 255, .12) !important;
	border-radius: 12px !important;
}

.tph-hub-page .tph-cta-bottom-text {
	font-size: .9rem !important;
	color: rgba(255, 255, 255, .8) !important;
	line-height: 1.5 !important;
	flex: 1;
	min-width: 200px;
	text-align: left;
}

.tph-hub-page .tph-cta-bottom-text strong {
	color: #fff !important;
}

.tph-hub-page .tph-cta-bottom-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .9rem !important;
	padding: 12px 24px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background .15s;
}

.tph-hub-page .tph-cta-bottom-btn:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-master-cta {
		padding: 48px 20px !important;
	}
	
	.tph-hub-page .tph-cta-bottom-strip {
		flex-direction: column;
		text-align: center;
	}
	
	.tph-hub-page .tph-cta-bottom-text {
		text-align: center;
	}
}

/* ── 15. STICKY BAR (DESKTOP ONLY) ───────────────────────── */
.tph-hub-page .tph-sticky-bar {
	position: fixed !important;
	bottom: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 1100 !important;
	background: #1e1e5e !important;
	border-top: 2px solid #f6b820 !important;
	padding: 14px 32px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 20px;
	box-shadow: 0 -4px 24px rgba(0, 0, 0, .2) !important;
}

.tph-hub-page .tph-sticky-bar-text {
	font-size: .9rem !important;
	color: rgba(255, 255, 255, .85) !important;
	line-height: 1.4 !important;
}

.tph-hub-page .tph-sticky-bar-text strong {
	color: #fff !important;
}

.tph-hub-page .tph-sticky-bar-text em {
	color: #f6b820 !important;
	font-style: normal;
}

.tph-hub-page .tph-sticky-bar-actions {
	display: flex !important;
	gap: 12px !important;
	align-items: center !important;
	flex-shrink: 0;
}

.tph-hub-page .tph-sticky-bar-btn-primary {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .85rem !important;
	padding: 10px 20px !important;
	border-radius: 6px !important;
	text-decoration: none !important;
	white-space: nowrap;
}

.tph-hub-page .tph-sticky-bar-btn-primary:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
}

.tph-hub-page .tph-sticky-bar-btn-secondary {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	color: rgba(255, 255, 255, .75) !important;
	font-size: .82rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(255, 255, 255, .35);
	padding-bottom: 1px;
}

.tph-hub-page .tph-sticky-bar-btn-secondary:hover {
	color: #f6b820 !important;
	border-color: #f6b820;
}

/* Hide sticky bar on mobile */
@media (max-width: 768px) {
	.tph-hub-page .tph-sticky-bar {
		display: none !important;
	}
}

/* ── 16. BADGE GOLD VARIANT ──────────────────────────────── */
.tph-hub-page .tph-badge--gold {
	background: #fef3c7 !important;
	color: #92400e !important;
}

/* ── 17. SECTION CONTAINER OVERRIDE ─────────────────────── */

/* Ensure all sections use full width with inner max-width */
.tph-hub-page .tph-section {
	padding-left: 32px !important;
	padding-right: 32px !important;
}

.tph-hub-page .tph-section > * {
	max-width: 1160px;
	margin-left: auto;
	margin-right: auto;
}

/* But don't restrict direct children that are already containers */
.tph-hub-page .tph-section > .tph-section__header, .tph-hub-page .tph-section > .tph-software-grid, .tph-hub-page .tph-section > .tph-section__footer-link {
	max-width: 1160px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 768px) {
	.tph-hub-page .tph-section {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
}

/* ── 18. HERO CTA BUTTON (if not already in hero section) ── */
.tph-hub-page .tph-hero__cta {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	background: #f6b820 !important;
	color: #1e1e5e !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	padding: 14px 28px !important;
	border-radius: 8px !important;
	text-decoration: none !important;
	margin-top: 24px !important;
	box-shadow: 0 4px 16px rgba(246, 184, 32, .35);
	transition: background .18s, transform .15s;
}

.tph-hub-page .tph-hero__cta:hover {
	background: #e0a800 !important;
	color: #1e1e5e !important;
	transform: translateY(-1px);
}

/* ── 15. TABLET ADJUSTMENTS ── */
@media (min-width: 769px) and (max-width: 1024px) {
	body.page-id-129172 .site-main .tph-category-map {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	
	body.page-id-129172 .site-main .tph-cta-paths {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* ── SPECIFICITY FIX V3.1 ──────────────────────────────────────────
   tph-enterprise.css has: .tph-hub-page .tph-hero { max-width:1140px; margin-left:auto }
   That rule has specificity (0,2,0). We need higher specificity to win.
   Using body.page-id-129172 .tph-hub-page .tph-hero = (0,3,1) to win.
   UNK_STYLE_FIX_V3_1_20260527
   ================================================================= */
body.page-id-129172 .tph-hub-page .tph-hero, body.page-id-129172 .tph-hub-page .tph-section {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.page-id-129172 .tph-hub-page .tph-hero {
	width: 100vw !important;
	max-width: 100vw !important;
	position: relative !important;
	left: 50% !important;
	right: 50% !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	box-sizing: border-box !important;
	text-align: center !important;
	padding: 72px 32px 48px !important;
}

body.page-id-129172 .tph-hub-page .tph-hero h1, body.page-id-129172 .tph-hub-page .tph-hero .tph-hero__title {
	max-width: 900px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

body.page-id-129172 .tph-hub-page .tph-hero .tph-hero__subtitle, body.page-id-129172 .tph-hub-page .tph-hero .tph-hero__lead, body.page-id-129172 .tph-hub-page .tph-hero p {
	max-width: 680px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

body.page-id-129172 .tph-hub-page .tph-hero .tph-hero__stats, body.page-id-129172 .tph-hub-page .tph-hero .tph-stats-bar {
	justify-content: center !important;
	max-width: 700px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.page-id-129172 .tph-hub-page .tph-master-cta, body.page-id-129172 .tph-hub-page section.tph-master-cta {
	width: 100vw !important;
	max-width: 100vw !important;
	position: relative !important;
	left: 50% !important;
	right: 50% !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	box-sizing: border-box !important;
}

body.page-id-129172 .tph-hub-page .tph-software-grid, body.page-id-129172 .tph-hub-page .tph-category-map, body.page-id-129172 .tph-hub-page .tph-section-footer, body.page-id-129172 .tph-hub-page .tph-section__title, body.page-id-129172 .tph-hub-page .tph-section__header {
	max-width: 1160px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
}

/* ============================================================
   TPH UI FIX v5 — Three-issue fix
   1. Compact CTA: white text on dark blue background
   2. Hub-links: full-width grid layout fix
   3. Category Map: premium SaaS-style directory redesign
   Deployed: 2026-05-28
   ============================================================ */

/* ── FIX 1: COMPACT CTA — white text on dark blue background ──
   The .tph-compact-cta card has a dark navy background (#1E1E5E)
   but text defaults to dark gray. Fix with maximum specificity.
   The screenshot shows:
   - Headline: invisible (dark on dark)
   - Body text: barely visible gray
   - CTA link: hot pink (browser default link color)
   ──────────────────────────────────────────────────────────── */

/* Base fix — all text inside compact CTA */
.tph-compact-cta, .tph-compact-cta * {
	color: #fff !important;
}

/* Headline */
.tph-compact-cta .tph-compact-cta-headline, .tph-compact-cta-headline {
	color: #fff !important;
	font-weight: 800 !important;
}

/* Label / eyebrow */
.tph-compact-cta .tph-compact-cta-label, .tph-compact-cta-label {
	color: #f6b820 !important;
}

/* Body text */
.tph-compact-cta .tph-compact-cta-sub, .tph-compact-cta .tph-compact-cta-body, .tph-compact-cta-sub, .tph-compact-cta-body {
	color: rgba(255, 255, 255, .88) !important;
}

/* Note / fine print */
.tph-compact-cta .tph-compact-cta-note, .tph-compact-cta-note {
	color: rgba(255, 255, 255, .65) !important;
}

/* CTA button — keep white bg with navy text */
.tph-compact-cta .tph-compact-cta-btn, .tph-compact-cta-btn {
	background: #f6b820 !important;
	color: #1e1e5e !important;
	border: none !important;
	text-decoration: none !important;
}

.tph-compact-cta .tph-compact-cta-btn:hover, .tph-compact-cta-btn:hover {
	background: #ffd166 !important;
	color: #1e1e5e !important;
	text-decoration: none !important;
}

/* Inline links inside compact CTA body */
.tph-compact-cta a:not(.tph-compact-cta-btn) {
	color: #f6b820 !important;
	text-decoration: underline !important;
}

/* Override the high-specificity .tph-hub-page .tph-section p rule */
.tph-hub-page .tph-compact-cta p, .tph-hub-page .tph-compact-cta span, .tph-hub-page .tph-compact-cta .tph-compact-cta-sub, .tph-hub-page .tph-compact-cta .tph-compact-cta-body, .tph-child-page .tph-compact-cta p, .tph-child-page .tph-compact-cta span, .tph-child-page .tph-compact-cta .tph-compact-cta-sub, .tph-child-page .tph-compact-cta .tph-compact-cta-body {
	color: rgba(255, 255, 255, .88) !important;
}

/* ── FIX 2: HUB-LINKS — full-width responsive grid ────────────
   The .tph-hub-links section is a grid container. The inner div
   needs to span the full width. The current layout has:
   - display: grid on .tph-hub-links (correct, from tph-hub-v3.css)
   - grid-template-columns: repeat(auto-fill, minmax(220px, 1fr))
   This should work, but the inner div structure may be different.
   Force the grid to be full-width and properly laid out.
   ──────────────────────────────────────────────────────────── */

/* Ensure the hub-links container spans full width */
.tph-hub-links {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
	gap: 12px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* If there's a wrapper div inside, make it full width */
.tph-hub-links > div {
	width: 100% !important;
	grid-column: 1/-1 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	align-items: flex-start !important;
}

/* Label column */
.tph-hub-links > div > div:first-child {
	flex: 0 0 auto !important;
	min-width: 130px !important;
	max-width: 180px !important;
	font-family: "Montserrat", sans-serif !important;
	font-size: .72rem !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
	color: #6b7280 !important;
	padding-top: 4px !important;
}

/* Links grid column */
.tph-hub-links > div > div:last-child {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}

/* Individual link pills */
.tph-hub-links > div > div:last-child a {
	display: inline-flex !important;
	align-items: center !important;
	padding: 6px 14px !important;
	background: #f8f9fa !important;
	border: 1px solid #e9ecef !important;
	border-radius: 20px !important;
	font-size: .82rem !important;
	font-weight: 600 !important;
	color: #1e1e5e !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	transition: border-color .15s, background .15s !important;
}

.tph-hub-links > div > div:last-child a:hover {
	background: #eef0f8 !important;
	border-color: #1e1e5e !important;
	color: #1e1e5e !important;
	text-decoration: none !important;
}

/* Mobile: stack label above links */
@media (max-width: 768px) {
	.tph-hub-links > div {
		flex-direction: column !important;
		gap: 12px !important;
	}
	
	.tph-hub-links > div > div:first-child {
		max-width: 100% !important;
	}
	
	.tph-hub-links > div > div:last-child {
		flex: 1 1 auto !important;
		width: 100% !important;
	}
	
	.tph-hub-links > div > div:last-child a {
		white-space: normal !important;
		font-size: .8rem !important;
	}
}

/* ── FIX 3: CATEGORY MAP — Premium SaaS-style directory ───────
   Redesign from tiny pill buttons to full G2/Capterra-style cards.
   Each card: icon + name + description + tool count + hover effect.
   Layout: 3-col desktop, 2-col tablet, 1-col mobile.
   The HTML structure uses .tph-category-map as grid container
   and .tph-category-map__item as individual card links.
   ──────────────────────────────────────────────────────────── */

/* Section wrapper — reduce excessive whitespace */
.tph-hub-page .tph-category-nav, .tph-category-nav {
	padding: 48px 32px !important;
	background: #f8f9fa !important;
}

/* Section header — fix awkward title wrapping */
.tph-hub-page .tph-section__header, .tph-hub-page .tph-category-nav .tph-section__header {
	max-width: 1160px !important;
	margin: 0 auto 40px !important;
	text-align: center !important;
}

/* Eyebrow label */
.tph-hub-page .tph-section__eyebrow {
	justify-content: center !important;
	margin-bottom: 12px !important;
}

/* Main heading — fix wrapping */
.tph-hub-page .tph-section__title, .tph-hub-page .tph-category-nav .tph-section__title {
	font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
	font-weight: 800 !important;
	color: #1e1e5e !important;
	line-height: 1.2 !important;
	margin: 0 0 12px !important;
	text-align: center !important;
}

/* Subheadline */
.tph-hub-page .tph-section__sub, .tph-hub-page .tph-category-nav .tph-section__sub {
	font-size: 1rem !important;
	color: #495057 !important;
	max-width: 680px !important;
	margin: 0 auto !important;
	line-height: 1.6 !important;
	text-align: center !important;
}

/* Grid container — 3 columns desktop */
.tph-hub-page .tph-category-map, body.page-id-129172 .tph-hub-page .tph-category-map, body.page-id-129172 .site-main .tph-category-map {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	max-width: 1160px !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

/* Premium card base */
.tph-hub-page .tph-category-map__item, body.page-id-129172 .site-main .tph-category-map__item {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	gap: 10px !important;
	padding: 24px 22px 20px !important;
	background: #fff !important;
	border: 1.5px solid #e2e5ea !important;
	border-radius: 14px !important;
	text-decoration: none !important;
	transition: border-color .2s, box-shadow .2s, transform .18s !important;
	cursor: pointer !important;
	min-height: 140px !important;
	position: relative !important;
	overflow: hidden !important;
}

/* Hover state — elevation + border highlight */
.tph-hub-page .tph-category-map__item:hover, body.page-id-129172 .site-main .tph-category-map__item:hover {
	border-color: #f6b820 !important;
	box-shadow: 0 8px 28px rgba(30, 30, 94, .12) !important;
	transform: translateY(-3px) !important;
	text-decoration: none !important;
	background: #fffdf5 !important;
}

/* Directional arrow on hover */
.tph-hub-page .tph-category-map__item::after, body.page-id-129172 .site-main .tph-category-map__item::after {
	content: "→" !important;
	position: absolute !important;
	bottom: 16px !important;
	right: 18px !important;
	font-size: 1rem !important;
	color: #d1d5db !important;
	transition: color .2s, transform .2s !important;
}

.tph-hub-page .tph-category-map__item:hover::after, body.page-id-129172 .site-main .tph-category-map__item:hover::after {
	color: #f6b820 !important;
	transform: translateX(3px) !important;
}

/* Icon container */
.tph-hub-page .tph-category-map__icon, body.page-id-129172 .site-main .tph-category-map__icon {
	width: 44px !important;
	height: 44px !important;
	background: #eef0f8 !important;
	border-radius: 10px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1.3rem !important;
	flex-shrink: 0 !important;
	margin-bottom: 4px !important;
}

.tph-hub-page .tph-category-map__icon img, body.page-id-129172 .site-main .tph-category-map__icon img {
	width: 24px !important;
	height: 24px !important;
	display: block !important;
	margin: 0 !important;
}

/* Category name */
.tph-hub-page .tph-category-map__label, body.page-id-129172 .site-main .tph-category-map__label {
	font-family: "Montserrat", sans-serif !important;
	font-size: .9rem !important;
	font-weight: 800 !important;
	color: #1e1e5e !important;
	text-transform: uppercase !important;
	letter-spacing: .04em !important;
	line-height: 1.25 !important;
	margin: 0 !important;
}

/* Description text */
.tph-hub-page .tph-category-map__desc, body.page-id-129172 .site-main .tph-category-map__desc {
	font-size: .82rem !important;
	color: #6b7280 !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	flex: 1 !important;
}

/* Tool count badge */
.tph-hub-page .tph-category-map__count, body.page-id-129172 .site-main .tph-category-map__count {
	font-size: .72rem !important;
	font-weight: 700 !important;
	color: #1e1e5e !important;
	background: #eef0f8 !important;
	padding: 3px 10px !important;
	border-radius: 12px !important;
	display: inline-block !important;
	margin: 0 !important;
}

/* Tablet: 2 columns */
@media (min-width: 601px) and (max-width: 1024px) {
	.tph-hub-page .tph-category-map, body.page-id-129172 .site-main .tph-category-map, body.page-id-129172 .tph-hub-page .tph-category-map {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px !important;
	}
}

/* Mobile: 1 column */
@media (max-width: 600px) {
	.tph-hub-page .tph-category-map, body.page-id-129172 .site-main .tph-category-map, body.page-id-129172 .tph-hub-page .tph-category-map {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}
	
	.tph-hub-page .tph-category-map__item, body.page-id-129172 .site-main .tph-category-map__item {
		min-height: auto !important;
		padding: 18px 16px 16px !important;
	}
	
	.tph-hub-page .tph-category-nav, .tph-category-nav {
		padding: 32px 16px !important;
	}
}

/* ============================================================
   TPH v6 FIX — Overall Score hide + Introduction section polish
   Deployed: 2026-05-28 | UNK_STYLE_FIX_v6
   ============================================================ */

/* 1. HIDE the standalone "Overall Score: X/5" div that sits
      below the hero bar — it's redundant and unpolished */
.tph-overall-score {
	display: none !important;
}

/* 2. INTRODUCTION SECTION — tighten the gap between the hero
      and the first content section, add a clean separator */

/* Remove the excessive top padding/margin on the first tph-section */
.tph-container > .tph-section:first-of-type {
	margin-top: 0 !important;
	padding-top: 40px !important;
}

/* General tph-section spacing — consistent vertical rhythm */
.tph-container > .tph-section {
	padding-top: 40px !important;
	padding-bottom: 40px !important;
	border-bottom: 1px solid #eaecf0 !important;
}

/* Last section before CTA — no bottom border */
.tph-container > .tph-section:last-of-type {
	border-bottom: none !important;
}

/* Section h2 headings — tighter, more editorial */
.tph-section h2 {
	font-family: "Barlow Condensed", "Montserrat", sans-serif !important;
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	color: #1e1e5e !important;
	margin-top: 0 !important;
	margin-bottom: 16px !important;
	padding-bottom: 10px !important;
	border-bottom: 3px solid #f6b820 !important;
	display: inline-block !important;
}

/* Section body text — readable line-height, proper color */
.tph-section p {
	color: #374151 !important;
	font-size: 1rem !important;
	line-height: 1.75 !important;
	margin-bottom: 14px !important;
}

/* Section h3 subheadings */
.tph-section h3 {
	font-family: "Barlow Condensed", "Montserrat", sans-serif !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1e1e5e !important;
	letter-spacing: .03em !important;
	text-transform: uppercase !important;
	margin-top: 24px !important;
	margin-bottom: 10px !important;
}

/* Key Statistics list inside Introduction */
.tph-section ul {
	padding-left: 20px !important;
	margin-bottom: 14px !important;
}

.tph-section ul li {
	color: #374151 !important;
	font-size: .95rem !important;
	line-height: 1.7 !important;
	margin-bottom: 6px !important;
}

/* 3. COMPACT CTA — ensure all text is white on dark bg
      (belt-and-suspenders fix in case v5 didn't fully apply) */
.tph-compact-cta {
	background: #1e1e5e !important;
	border-left: 4px solid #f6b820 !important;
	border-radius: 12px !important;
	padding: 32px 36px !important;
}

.tph-compact-cta *, .tph-compact-cta p, .tph-compact-cta h2, .tph-compact-cta h3, .tph-compact-cta span, .tph-compact-cta-title, .tph-compact-cta-sub, .tph-compact-cta-sub p {
	color: #fff !important;
}

.tph-compact-cta a, .tph-compact-cta .tph-compact-cta-btn {
	color: #f6b820 !important;
	text-decoration: underline !important;
	font-weight: 700 !important;
}

.tph-compact-cta a:hover, .tph-compact-cta .tph-compact-cta-btn:hover {
	color: #ffd966 !important;
}

/* 4. OVERALL SCORE h2 inside content — also hide the duplicate
      "Overall Score: 4.5/5" h2 that appears in the content body */
.tph-section h2:first-child {}

/* Target the specific h2 that is the section title for the score section */
.tph-container .tph-section:has(h2:only-child) h2 {}

/* Hide the score-only section if it has no meaningful body content */
.tph-container .tph-section:has(> h2 + p:empty), .tph-container .tph-section:has(> h2:only-child) {}

/* ============================================================
   TPH UI FIX v7 — 2026-05-28
   Fix: .tph-overall-score is outside .tph-hub-page scope,
   so the v6 scoped rule didn't apply. Use unscoped rule.
   ============================================================ */

/* Hide the standalone "Overall Score: X/5" div below the hero */
.tph-overall-score {
	display: none !important;
}

/* Reduce the massive gap between hero and Introduction heading */
.page-content > .tph-container {
	padding-top: 40px !important;
}
