/* PM Hub Archive Fix — scoped styles for the pm_tool archive page only.
   Tokens below are copied from the site's real brand system ("pmstack"
   Additional CSS) so this page matches the rest of the site exactly. */

.pmhubfix-archive {
	--pmf-ink: #0E1525;
	--pmf-ink-soft: #3a4256;
	--pmf-muted: #6b7280;
	--pmf-violet: #7c3aed;
	--pmf-blue: #2563eb;
	--pmf-grad: linear-gradient(135deg,#7c3aed 0%,#2563eb 100%);
	--pmf-line: #ececf2;
	--pmf-surface: #ffffff;
	--pmf-radius: 14px;
	--pmf-shadow: 0 6px 16px rgba(14,21,37,.06), 0 2px 6px rgba(14,21,37,.04);
	--pmf-shadow-lg: 0 24px 48px -12px rgba(14,21,37,.18);
	--pmf-display: "Newsreader", Georgia, "Times New Roman", serif;
	--pmf-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--pmf-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;

	background: #f9f9fc;
	padding: 48px 20px 80px;
	box-sizing: border-box;
	font-family: var(--pmf-sans);
}
.pmhubfix-archive * { box-sizing: border-box; }

.pmhubfix-container {
	max-width: 1100px;
	margin: 0 auto;
}

.pmhubfix-page-head { margin-bottom: 28px; }
.pmhubfix-h1 {
	font-family: var(--pmf-display);
	font-size: 2.25rem;
	font-weight: 600;
	color: var(--pmf-ink);
	letter-spacing: -.02em;
	line-height: 1.1;
	margin: 0 0 10px;
}
.pmhubfix-sub {
	font-size: 1.05rem;
	color: var(--pmf-ink-soft);
	margin: 0;
}

/* Filters */
.pmhubfix-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 28px 0 40px;
}
.pmhubfix-filter {
	font-family: var(--pmf-sans);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--pmf-ink-soft);
	background: #fff;
	border: 1px solid var(--pmf-line);
	border-radius: 999px;
	padding: 9px 18px;
	cursor: pointer;
	transition: all 0.15s ease;
	line-height: 1.2;
}
.pmhubfix-filter:hover { border-color: var(--pmf-violet); color: var(--pmf-violet); }
.pmhubfix-filter.is-active {
	background: var(--pmf-grad);
	border-color: transparent;
	color: #fff;
	box-shadow: 0 6px 16px -6px rgba(124,58,237,.6);
}

/* Sections */
.pmhubfix-section { margin-bottom: 44px; }
.pmhubfix-section-title {
	font-family: var(--pmf-display);
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--pmf-ink);
	letter-spacing: -.015em;
	margin: 0 0 18px;
}
.pmhubfix-empty, .pmhubfix-no-results {
	color: var(--pmf-muted);
	font-size: 0.95rem;
}

/* Grid */
.pmhubfix-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 22px;
	align-items: stretch;
}

/* Card */
.pmhubfix-card {
	position: relative;
	background: var(--pmf-surface);
	border: 1px solid var(--pmf-line);
	border-radius: var(--pmf-radius);
	padding: 22px 22px 20px;
	display: flex;
	flex-direction: column;
	box-shadow: var(--pmf-shadow);
	transition: box-shadow 0.2s ease, transform 0.15s ease;
	overflow: hidden;
}
.pmhubfix-card:hover {
	box-shadow: var(--pmf-shadow-lg);
	transform: translateY(-3px);
}

.pmhubfix-ribbon {
	position: absolute;
	top: 14px;
	right: -34px;
	background: var(--pmf-grad);
	color: #fff;
	font-family: var(--pmf-mono);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 5px 40px;
	transform: rotate(38deg);
	box-shadow: 0 4px 10px rgba(124,58,237,.35);
	white-space: nowrap;
}

.pmhubfix-card-head {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 14px;
	padding-right: 28px;
}
.pmhubfix-logo {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-family: var(--pmf-display);
	font-weight: 600;
	font-size: 1.2rem;
}
.pmhubfix-head-text { min-width: 0; }
.pmhubfix-badge {
	display: inline-block;
	font-family: var(--pmf-mono);
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--pmf-violet);
	background: rgba(124,58,237,.08);
	border-radius: 6px;
	padding: 3px 8px;
	margin-bottom: 6px;
}
.pmhubfix-name {
	font-family: var(--pmf-display);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--pmf-ink);
	letter-spacing: -.01em;
	margin: 0 0 4px;
	line-height: 1.25;
}
.pmhubfix-tagline {
	font-size: 0.88rem;
	color: var(--pmf-ink-soft);
	margin: 0;
	line-height: 1.4;
}

.pmhubfix-rating-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.pmhubfix-star-wrap {
	position: relative;
	display: inline-block;
	font-size: 15px;
	line-height: 1;
	letter-spacing: 2px;
}
.pmhubfix-star-bg { color: #e2e5ea; }
.pmhubfix-star-fg {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	white-space: nowrap;
	color: #f59e0b;
}
.pmhubfix-rating-num { font-weight: 700; font-size: 0.9rem; color: var(--pmf-ink); }
.pmhubfix-reviews { font-family: var(--pmf-mono); font-size: 0.72rem; color: var(--pmf-muted); }

.pmhubfix-pros {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	flex: 1 1 auto;
}
.pmhubfix-pros li {
	position: relative;
	font-size: 0.87rem;
	color: var(--pmf-ink-soft);
	padding-left: 20px;
	margin-bottom: 8px;
	line-height: 1.4;
}
.pmhubfix-pros li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--pmf-blue);
	font-weight: 700;
}

.pmhubfix-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--pmf-line);
	margin-top: auto;
	flex-wrap: wrap;
}
.pmhubfix-price-block {
	display: flex;
	flex-direction: column;
	line-height: 1.35;
	min-width: 0;
}
.pmhubfix-price-block strong { font-size: 0.9rem; color: var(--pmf-ink); }
.pmhubfix-price-block span { font-family: var(--pmf-mono); font-size: 0.72rem; color: var(--pmf-muted); }

.pmhubfix-cta {
	flex: 0 0 auto;
	background: var(--pmf-grad) !important;
	color: #fff !important;
	text-decoration: none !important;
	font-family: var(--pmf-sans) !important;
	font-size: 0.85rem;
	font-weight: 700;
	padding: 9px 18px;
	border-radius: 12px;
	white-space: nowrap;
	box-shadow: 0 6px 16px -6px rgba(124,58,237,.6);
	transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.pmhubfix-cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -8px rgba(124,58,237,.7);
}

/* Filtering states (JS toggles these) */
.pmhubfix-card.is-hidden { display: none; }
.pmhubfix-section.is-hidden { display: none; }

@media (max-width: 480px) {
	.pmhubfix-archive { padding: 32px 14px 60px; }
	.pmhubfix-h1 { font-size: 1.7rem; }
	.pmhubfix-grid { grid-template-columns: 1fr; }
	.pmhubfix-card-head { padding-right: 0; }
	.pmhubfix-ribbon { top: 10px; right: -38px; font-size: 0.58rem; padding: 4px 36px; }
}
