/* Partners section — scoped styles for /partners and /partner/{slug}/* */

/* ===== Tokens (mirrored from wp-context.md) ===== */
:root {
	--p-color-blue: #146CFF;
	--p-color-blue-hover: #448AFF;
	--p-color-near-black: #0a0a0a;
	--p-color-body: #1f1f1f;
	--p-color-bg-light: #f5f5f5;
	--p-color-border: #e5e7eb;
	--p-radius-card: 16px;
	--p-radius-button: 10px;
	--p-shadow-card: 0 1px 2px rgba(10, 10, 10, 0.04), 0 4px 16px rgba(10, 10, 10, 0.06);
}

/* ===== Shared ===== */
.partners-archive .container,
.partner-single .container,
.partner-contact .container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
	width: 100%;
	box-sizing: border-box;
}

.partners-breadcrumbs,
.partner-breadcrumbs {
	font-size: 14px;
	color: #6b7280;
	margin-bottom: 12px;
}

.partners-breadcrumbs a,
.partner-breadcrumbs a {
	color: #6b7280;
	text-decoration: none;
}

.partners-breadcrumbs a:hover,
.partner-breadcrumbs a:hover {
	color: var(--p-color-blue);
	text-decoration: underline;
}

.partner-tag {
	display: inline-block;
	background: var(--p-color-bg-light);
	color: var(--p-color-body);
	font-size: 13px;
	font-weight: 500;
	border-radius: 999px;
	padding: 4px 10px;
	margin: 0 6px 6px 0;
	line-height: 1.4;
}

.partner-tag--tier {
	background: #ede9fe;
	color: #5b21b6;
}

/* ===== Archive (/partners) ===== */
.partners-archive .partners-hero {
	padding: 110px 0 0 !important;
	background: #fff !important;
	margin: 0 !important;
}

.partners-archive .partners-hero-card {
	background: #b5e1ff !important;
	border-radius: 30px !important;
	padding: 50px 100px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 50px !important;
	text-align: center !important;
	box-sizing: border-box;
	width: 100%;
}

.partners-archive .partners-hero-text {
	display: flex;
	flex-direction: column;
	gap: 30px;
	align-items: center;
	max-width: 1028px;
	width: 100%;
}

.partners-archive .partners-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 50px !important;
	font-weight: 500 !important;
	line-height: 55px !important;
	letter-spacing: 0 !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center !important;
}

.partners-archive .partners-subtitle {
	font-family: 'Inter', sans-serif !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 36px !important;
	letter-spacing: 0 !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.partners-archive .partners-become-cta {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 15px 30px !important;
	background: var(--p-color-blue) !important;
	color: #fff !important;
	border-radius: var(--p-radius-button) !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	line-height: 20px !important;
	text-decoration: none !important;
	border: 0;
	transition: background 0.2s ease;
}

.partners-archive .partners-become-cta:hover {
	background: var(--p-color-blue-hover) !important;
}

.partners-grid-section {
	padding: 50px 0 100px;
}

.partners-layout {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 40px;
	align-items: start;
}

/* Sidebar — Filter by */
.partners-archive .partners-facets {
	background: transparent;
	border: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
	position: sticky;
	top: 100px;
	height: fit-content;
}

.partners-archive .partners-facets-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 26px !important;
	color: #323338 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.partners-archive .partners-facet {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 0;
	border: 0;
	margin: 0;
}

.partners-archive .partners-facet--search {
	gap: 0;
}

.partners-archive .partners-facet-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* Search input */
.partners-archive .partners-search-input {
	position: relative;
	width: 100%;
}

.partners-archive .partners-search-input input[type="search"] {
	width: 100%;
	height: 35px;
	padding: 8px 32px 8px 17px;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 10px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #000;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.partners-archive .partners-search-input input[type="search"]::placeholder {
	color: #648e9a;
	opacity: 1;
}

.partners-archive .partners-search-input input[type="search"]:focus {
	outline: none;
	border-color: #648e9a;
}

.partners-archive .partners-search-btn {
	position: absolute;
	top: 50%;
	right: 4px;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.partners-archive .partners-search-btn:hover {
	background: #f5f9fa;
}

/* Custom dropdown (services) */
.partners-archive .partners-dropdown {
	position: relative;
	width: 100%;
}

.partners-archive .partners-dropdown[open] .partners-dropdown-chevron {
	transform: rotate(180deg);
}

.partners-archive .partners-dropdown-trigger {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 35px;
	padding: 8px 8px 8px 12px;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 10px;
	cursor: pointer;
	box-sizing: border-box;
	user-select: none;
}

.partners-archive .partners-dropdown-trigger::-webkit-details-marker {
	display: none;
}

.partners-archive .partners-dropdown-label {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #9bbac3;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.partners-archive .partners-dropdown-label.is-active {
	color: #000;
}

.partners-archive .partners-dropdown-chevron {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	transition: transform 0.15s ease;
}

.partners-archive .partners-dropdown-panel {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 30;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 10px;
	padding: 12px;
	max-height: 240px;
	overflow-y: auto;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.partners-archive .partners-dropdown-panel .partners-checklist {
	margin: 0;
	padding: 0;
}

/* Checkbox lists (help, tier, dropdown contents) */
.partners-archive .partners-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.partners-archive .partners-checkbox-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 32px;
	cursor: pointer;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #000;
	margin: 0;
	padding: 0;
}

.partners-archive .partners-checkbox {
	-webkit-appearance: none;
	appearance: none;
	width: 16px;
	height: 16px;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 2px;
	margin: 0;
	flex-shrink: 0;
	cursor: pointer;
	position: relative;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.partners-archive .partners-checkbox:checked {
	background: #146CFF;
	border-color: #146CFF;
}

.partners-archive .partners-checkbox:checked::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 1px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.partners-archive .partners-checkbox:focus-visible {
	outline: 2px solid #146CFF;
	outline-offset: 1px;
}

/* Rating picker */
.partners-archive .partners-rating-picker {
	display: inline-flex;
	gap: 2px;
	align-items: center;
	height: 18px;
}

.partners-archive .partners-rating-star {
	border: 0;
	background: transparent;
	padding: 0;
	margin: 0;
	font-size: 18px;
	line-height: 18px;
	color: #d1d5db;
	cursor: pointer;
	width: 18px;
	height: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.partners-archive .partners-rating-star.is-active {
	color: #FFD400;
}

/* Clear all */
.partners-archive .partners-clear-filters {
	align-self: flex-start;
	height: 32px;
	padding: 5px 9px;
	background: #fff;
	color: #9bbac3;
	border: 1px solid #9bbac3;
	border-radius: 5px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.partners-archive .partners-clear-filters:hover {
	color: #648e9a;
	border-color: #648e9a;
}

.partners-grid.is-loading {
	opacity: 0.5;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.partners-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.partner-card,
.partner-card:hover,
.partner-card:focus,
.partner-card:active,
.partner-card:visited {
	text-decoration: none !important;
}

.partner-card * {
	text-decoration: none !important;
}

.partner-card {
	display: block;
	background: #fff;
	border: 1px solid var(--p-color-border);
	border-radius: var(--p-radius-card);
	padding: 24px;
	color: var(--p-color-body);
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.partner-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--p-shadow-card);
	border-color: #d1d5db;
}

.partner-card-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #F5F9FA;
	margin-bottom: 16px;
}

.partner-card-logo img {
	max-height: 175px;
	max-width: 100%;
	object-fit: contain;
}

.partner-card-name {
	font-size: 20px;
	font-weight: 600;
	color: var(--p-color-near-black);
	margin: 0 0 8px;
}

.partner-card-tags {
	margin-bottom: 12px;
}

.partner-card-desc {
	font-size: 15px;
	line-height: 22px;
	color: var(--p-color-body);
	margin: 0 0 12px;
}

.partner-card-pricing {
	font-size: 14px;
	color: var(--p-color-blue);
	font-weight: 600;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px dashed var(--p-color-border);
}

.partner-card-pricing p {
	margin: 0;
	font-size: 14px;
	line-height: 20px;
}

.partner-card-rating {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: 14px;
	color: #1f1f1f;
	font-weight: 500;
}

.partner-card-stars {
	position: relative;
	display: inline-block;
	font-size: 16px;
	line-height: 16px;
	letter-spacing: 1px;
	width: 86px;
	height: 16px;
}

.partner-card-stars-bg,
.partner-card-stars-fg {
	position: absolute;
	top: 0;
	left: 0;
	white-space: nowrap;
	overflow: hidden;
}

.partner-card-stars-bg {
	color: #E8EEF0;
	width: 100%;
}

.partner-card-stars-fg {
	color: #FFD400;
}

.partner-card-rating-value {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #1f1f1f;
}

.partners-pagination {
	margin-top: 40px;
	text-align: center;
}

.partners-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	margin: 0 4px;
	border-radius: 8px;
	border: 1px solid var(--p-color-border);
	color: var(--p-color-body);
	text-decoration: none;
	font-weight: 500;
}

.partners-pagination .page-numbers.current {
	background: var(--p-color-blue);
	color: #fff;
	border-color: var(--p-color-blue);
}

.partners-empty {
	padding: 60px 0;
	text-align: center;
	color: #6b7280;
}

/* ===== Single Partner — Figma node 10:915 ===== */
.partner-detail .container {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 20px;
	width: 100%;
	box-sizing: border-box;
}

/* Hero */
.partner-detail .partner-detail-hero {
	background: #fff;
	padding: 110px 0 50px;
}

.partner-detail .partner-detail-hero-card {
	background: #f5f9fa !important;
	border-radius: 30px !important;
	padding: 50px 100px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 30px !important;
	text-align: center !important;
	box-sizing: border-box;
	width: 100%;
}

.partner-detail .partner-detail-breadcrumbs {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 22px !important;
	color: #146cff !important;
	max-width: 1028px;
	width: 100%;
	margin: 0 !important;
}

.partner-detail .partner-detail-breadcrumbs a,
.partner-detail .partner-detail-breadcrumbs a:visited {
	color: #146cff !important;
	text-decoration: none !important;
}

.partner-detail .partner-detail-breadcrumbs a:hover {
	text-decoration: underline !important;
}

.partner-detail .partner-detail-logo {
	width: 150px;
	height: 35px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.partner-detail .partner-detail-logo img {
	max-width: 100%;
	max-height: 175px;
	object-fit: contain;
	display: block;
}

.partner-detail .partner-detail-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 50px !important;
	font-weight: 500 !important;
	line-height: 55px !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: 1028px;
	width: 100%;
	text-align: center !important;
}

.partner-detail .partner-detail-tagline {
	display: block;
	margin-top: 8px;
	font-size: 18px;
	font-weight: 400;
	line-height: 30px;
	color: #1f1f1f;
}

/* Body grid: sidebar LEFT, main content RIGHT */
.partner-detail .partner-detail-body {
	background: #fff;
	padding: 0 0 100px;
}

body.single-partner .partner-detail .partner-detail-grid,
.partner-detail .partner-detail-grid {
	display: grid !important;
	grid-template-columns: 272px 1fr !important;
	gap: 38px !important;
	align-items: start !important;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

/* Sidebar */
body.single-partner .partner-detail .partner-detail-sidebar,
.partner-detail .partner-detail-sidebar {
	display: flex !important;
	flex-direction: column !important;
	width: 272px !important;
	max-width: 272px;
	min-width: 0;
	position: sticky;
	top: 100px;
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

body.single-partner .partner-detail .partner-detail-main,
.partner-detail .partner-detail-main {
	display: flex !important;
	flex-direction: column !important;
	gap: 56px !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.partner-detail .partner-detail-sidebar-top {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 15px;
	margin-bottom: 0;
}

.partner-detail .partner-detail-headshot {
	width: 96px;
	height: 96px;
	border-radius: 96px;
	overflow: hidden;
}

.partner-detail .partner-detail-headshot img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.partner-detail .partner-detail-availability {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: rgba(0, 0, 0, 0.9) !important;
	margin: 0 !important;
}

.partner-detail .partner-detail-cta {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100%;
	height: 40px;
	min-height: 30px;
	padding: 4.5px 11px 5.5px !important;
	border-radius: 10px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 20px !important;
	text-align: center;
	text-decoration: none !important;
	box-sizing: border-box;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	box-shadow:
		0 0.326px 0.367px rgba(0, 0, 0, 0.12),
		0 1.541px 1.433px rgba(0, 0, 0, 0.07),
		0 4px 4.5px rgba(0, 0, 0, 0.05);
}

.partner-detail .partner-detail-cta--primary {
	background: #146cff !important;
	color: #fff !important;
	border: 1px solid transparent !important;
}

.partner-detail .partner-detail-cta--primary:hover {
	background: #448aff !important;
}

.partner-detail .partner-detail-cta--outline {
	background: #fff !important;
	color: #000 !important;
	border: 1px solid #000 !important;
}

.partner-detail .partner-detail-cta--outline:hover {
	background: #f5f9fa !important;
}

.partner-detail .partner-detail-sidebar-cards {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 20px 0;
}

.partner-detail .partner-detail-benefit {
	border: 1px solid #9bbac3;
	border-radius: 10px;
	padding: 15px 10px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.partner-detail .partner-detail-benefit-label {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: rgba(0, 0, 0, 0.9) !important;
	margin: 0 !important;
}

.partner-detail .partner-detail-benefit-value {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	line-height: 32px !important;
	color: #146cff !important;
	margin: 0 !important;
}

.partner-detail .partner-detail-benefit-body {
	font-size: 14px;
	line-height: 20px;
	color: #1f1f1f;
}

.partner-detail .partner-detail-benefit-body p { margin: 0 0 8px; }
.partner-detail .partner-detail-benefit-body p:last-child { margin-bottom: 0; }

.partner-detail .partner-detail-meta {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.partner-detail .partner-detail-meta-label {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: rgba(0, 0, 0, 0.9) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.partner-detail .partner-detail-tag {
	display: inline-flex;
	align-items: center;
	height: 24px;
	min-height: 24px;
	padding: 5px 9px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #000;
	border-radius: 10px;
	border: 1px solid transparent;
	white-space: nowrap;
	width: fit-content;
}

.partner-detail .partner-detail-tag--service {
	background: #cbf9ec;
	border-color: #26d7a5;
}

.partner-detail .partner-detail-tag--tier {
	background: #d4e0e4;
	border: 1px solid #648e9a;
	border-radius: 10px;
	padding: 4px 8px;
}

.partner-detail .partner-detail-rating-row {
	display: flex;
	align-items: center;
	gap: 5px;
}

.partner-detail .partner-detail-stars {
	position: relative;
	display: inline-block;
	font-size: 21px;
	line-height: 21px;
	letter-spacing: 1px;
	width: 110px;
	height: 21px;
}

.partner-detail .partner-detail-stars--small {
	font-size: 12px;
	line-height: 12px;
	letter-spacing: 1px;
	width: 70px;
	height: 12px;
}

.partner-detail .partner-detail-stars-bg,
.partner-detail .partner-detail-stars-fg {
	position: absolute;
	top: 0;
	left: 0;
	white-space: nowrap;
	overflow: hidden;
}

.partner-detail .partner-detail-stars-bg {
	color: #d4e0e4;
	width: 100%;
}

.partner-detail .partner-detail-stars-fg {
	color: #FFD400;
}

.partner-detail .partner-detail-rating-value {
	font-family: 'Inter', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 30px !important;
	color: #000 !important;
}

.partner-detail .partner-detail-link-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 26px;
	padding: 5px 9px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 4px;
	color: #000;
	box-sizing: border-box;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.partner-detail .partner-detail-link-item:hover {
	background: #f5f9fa;
	border-color: rgba(0, 0, 0, 0.2);
}

/* Main content */
.partner-detail .partner-detail-section-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	line-height: 32px !important;
	color: #000 !important;
	margin: 0 0 24px !important;
	padding: 0 !important;
}

/* About */
.partner-detail .partner-detail-about {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.partner-detail .partner-detail-about-body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 30px;
	color: #1f1f1f;
}

.partner-detail .partner-detail-about-body p {
	margin: 0 0 24px;
}

.partner-detail .partner-detail-about-body p:last-child {
	margin-bottom: 0;
}

/* Offerings */
.partner-detail .partner-detail-offerings-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.partner-detail .partner-detail-offering {
	display: flex;
	gap: 40px;
	align-items: flex-start;
	padding: 33px;
	border: 1px solid #9bbac3;
	border-radius: 10px;
	background: #fff;
	box-sizing: border-box;
}

.partner-detail .partner-detail-offering-icon {
	width: 80px;
	height: 80px;
	min-width: 80px;
	min-height: 80px;
	border-radius: 80px;
	background: #bcbaff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
	box-sizing: border-box;
}

.partner-detail .partner-detail-offering-icon img,
.partner-detail .partner-detail-offering-icon svg {
	width: 36px;
	height: 36px;
	object-fit: contain;
	display: block;
}

.partner-detail .partner-detail-offering-content {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.partner-detail .partner-detail-offering-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 26px !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.partner-detail .partner-detail-offering-copy {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #000;
	margin: 0;
}

/* Past work */
.partner-detail .partner-detail-pastwork-stage {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.partner-detail .partner-detail-pastwork-hero {
	width: 100%;
	border-radius: 10px;
	overflow: hidden;
	background: #f5f9fa;
	border: 1px solid #e5e7eb;
	aspect-ratio: 16 / 10;
}

.partner-detail .partner-detail-pastwork-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.partner-detail .partner-detail-pastwork-caption {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #1f1f1f;
	margin: 0;
	text-align: center;
}

.partner-detail .partner-detail-pastwork-thumbs-wrap {
	display: flex;
	align-items: center;
	gap: 12px;
}

.partner-detail .partner-detail-pastwork-thumbs {
	display: flex;
	gap: 16px;
	flex: 1 1 auto;
	min-width: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.partner-detail .partner-detail-pastwork-thumbs::-webkit-scrollbar {
	display: none;
}

.partner-detail .partner-detail-pastwork-thumb {
	flex: 0 0 calc((100% - 48px) / 4);
	aspect-ratio: 196 / 122;
	scroll-snap-align: start;
	padding: 0;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
	transition: border-color 0.15s ease, transform 0.15s ease;
}

.partner-detail .partner-detail-pastwork-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.partner-detail .partner-detail-pastwork-thumb:hover {
	border-color: #146cff;
}

.partner-detail .partner-detail-pastwork-thumb.is-active {
	border: 2px solid #146cff;
}

.partner-detail .partner-detail-pastwork-arrow {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid #e5e7eb;
	border-radius: 50%;
	background: #fff;
	color: #1f1f1f;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	transition: border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

.partner-detail .partner-detail-pastwork-arrow:hover {
	border-color: #146cff;
	color: #146cff;
}

.partner-detail .partner-detail-pastwork-arrow.is-disabled {
	opacity: 0.3;
	pointer-events: none;
}

/* Reviews */
.partner-detail .partner-detail-reviews-summary {
	display: flex;
	gap: 60px;
	align-items: flex-start;
	margin-bottom: 32px;
	flex-wrap: wrap;
}

.partner-detail .partner-detail-reviews-summary-left {
	display: flex;
	flex-direction: column;
	gap: 14.5px;
	min-width: 150px;
}

.partner-detail .partner-detail-reviews-avg {
	display: flex;
	align-items: flex-end;
	gap: 4px;
}

.partner-detail .partner-detail-reviews-avg-num {
	font-family: 'Inter', sans-serif;
	font-size: 50px;
	font-weight: 600;
	line-height: 1.1;
	color: #000;
}

.partner-detail .partner-detail-reviews-avg-sep {
	font-size: 18px;
	color: #9bbac3;
	margin-bottom: 4px;
}

.partner-detail .partner-detail-reviews-avg-max {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 30px;
	color: #9bbac3;
}

.partner-detail .partner-detail-reviews-count {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	color: #000;
	margin: 0;
}

.partner-detail .partner-detail-reviews-summary-right {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 420px;
	width: 100%;
	flex: 1 1 320px;
}

.partner-detail .partner-detail-reviews-bar-row {
	display: flex;
	gap: 8px;
	align-items: center;
	width: 100%;
}

.partner-detail .partner-detail-reviews-bar-stars {
	display: inline-flex;
	gap: 4px;
	align-items: center;
	flex-shrink: 0;
}

.partner-detail .partner-detail-reviews-bar-star {
	width: 8px;
	height: 8px;
	background: #d4e0e4;
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
	display: inline-block;
}

.partner-detail .partner-detail-reviews-bar-star.is-on {
	background: #FFD400;
}

.partner-detail .partner-detail-reviews-bar-track {
	flex: 1 1 auto;
	height: 4px;
	background: #d4e0e4;
	border-radius: 8px;
	position: relative;
	overflow: hidden;
}

.partner-detail .partner-detail-reviews-bar-fill {
	display: block;
	height: 100%;
	background: #d4e0e4;
	border-radius: 8px;
	transition: width 0.3s ease;
}

.partner-detail .partner-detail-reviews-bar-fill.is-on {
	background: #FFD400;
}

.partner-detail .partner-detail-reviews-list {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.partner-detail .partner-detail-review {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: 24px;
	border-bottom: 1px solid #e5e7eb;
}

.partner-detail .partner-detail-review:last-child {
	border-bottom: 0;
}

.partner-detail .partner-detail-review-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.partner-detail .partner-detail-review-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: #000 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.partner-detail .partner-detail-review-body {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #1f1f1f;
}

.partner-detail .partner-detail-review-body p {
	margin: 0 0 8px;
}

.partner-detail .partner-detail-review-body p:last-child {
	margin-bottom: 0;
}

.partner-detail .partner-detail-review-foot {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
}

.partner-detail .partner-detail-review-avatar {
	width: 20px;
	height: 20px;
	border-radius: 20px;
	background: #146cff;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	flex-shrink: 0;
}

.partner-detail .partner-detail-review-meta {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 22px;
	color: #1f1f1f;
}

.partner-detail .partner-detail-review-company {
	color: #6b7280;
}

.partner-detail .partner-detail-review-sep {
	color: #9bbac3;
	margin: 0 4px;
}

.partner-detail .partner-detail-review-date {
	color: #6b7280;
}

/* ===== Contact subpage — Figma 12:2991 / 67:3811 ===== */
.partner-contact .partner-contact-form-section {
	background: #fff;
	padding: 40px 0 100px;
}

.partner-contact .partner-contact-form-card {
	max-width: 540px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	padding: 40px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
	box-sizing: border-box;
}

/* === HubSpot form embed overrides === */
.partner-contact .partner-contact-form-card .hbspt-form,
.partner-contact .partner-contact-form-card .hs-form,
.partner-contact .partner-contact-form-card form.hs-form {
	font-family: 'Inter', sans-serif !important;
	background: transparent !important;
	box-shadow: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Reset HubSpot's fieldset defaults */
.partner-contact .partner-contact-form-card .hs-form fieldset {
	max-width: 100% !important;
	width: 100% !important;
	border: 0 !important;
	margin: 0 0 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

/* Default field spacing (overridden inside fieldsets) */
.partner-contact .partner-contact-form-card .hs-form-field {
	margin-bottom: 16px !important;
	padding: 0 !important;
}

/* Field label */
.partner-contact .partner-contact-form-card .hs-form-field > label,
.partner-contact .partner-contact-form-card .hs-form-field > label.hs-main-font-element {
	display: block !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	color: #1f1f1f !important;
	margin: 0 0 6px 0 !important;
	padding: 0 !important;
	cursor: default !important;
}

.partner-contact .partner-contact-form-card .hs-form-field > label > span,
.partner-contact .partner-contact-form-card .hs-form-field > label .hs-main-font-element {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f1f1f !important;
}

.partner-contact .partner-contact-form-card .hs-form-required,
.partner-contact .partner-contact-form-card .gsp-partner-inquiry-form .hs-form-required {
	color: #1f1f1f !important;
	margin-left: 2px !important;
	font-weight: 600 !important;
}

/* Hide HubSpot's "help text" / placeholder-as-text divs that appear ABOVE inputs */
.partner-contact .partner-contact-form-card .hs-field-desc,
.partner-contact .partner-contact-form-card legend.hs-field-desc {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Input wrapper */
.partner-contact .partner-contact-form-card .hs-form-field .input {
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	width: 100% !important;
}

/* Inputs */
.partner-contact .partner-contact-form-card .hs-form-field input[type="text"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="email"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="tel"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="url"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="number"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="password"],
.partner-contact .partner-contact-form-card .hs-form-field input[type="search"],
.partner-contact .partner-contact-form-card .hs-form-field select,
.partner-contact .partner-contact-form-card input.hs-input,
.partner-contact .partner-contact-form-card select.hs-input {
	display: block !important;
	width: 100% !important;
	height: 40px !important;
	min-height: 40px !important;
	padding: 8px 12px !important;
	margin: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 22px !important;
	color: #1f1f1f !important;
	background: #fff !important;
	border: 1px solid #d4dde1 !important;
	border-radius: 6px !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

/* Textarea */
.partner-contact .partner-contact-form-card .hs-form-field textarea,
.partner-contact .partner-contact-form-card textarea.hs-input {
	display: block !important;
	width: 100% !important;
	min-height: 120px !important;
	padding: 10px 12px !important;
	margin: 0 !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 22px !important;
	color: #1f1f1f !important;
	background: #fff !important;
	border: 1px solid #d4dde1 !important;
	border-radius: 6px !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	resize: vertical !important;
}

/* Placeholders */
.partner-contact .partner-contact-form-card .hs-input::placeholder,
.partner-contact .partner-contact-form-card .hs-input::-webkit-input-placeholder,
.partner-contact .partner-contact-form-card textarea::placeholder {
	color: #9bbac3 !important;
	opacity: 1 !important;
}

/* Focus */
.partner-contact .partner-contact-form-card .hs-input:focus,
.partner-contact .partner-contact-form-card textarea:focus {
	outline: none !important;
	border-color: #146cff !important;
	box-shadow: 0 0 0 3px rgba(20, 108, 255, 0.12) !important;
}

/* Two-column rows */
.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-2 {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0 16px !important;
	margin: 0 !important;
}

.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-2 .hs-form-field {
	flex: 1 1 calc(50% - 8px) !important;
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 0 16px 0 !important;
	padding: 0 !important;
}

/* Single-column rows (textarea) */
.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-1 {
	margin: 0 !important;
}

.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-1 .hs-form-field {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 0 16px 0 !important;
}

/* Three-column (rare but possible) — collapse to single column */
.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-3 {
	display: flex !important;
	flex-direction: column !important;
}

.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-3 .hs-form-field {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	margin: 0 0 16px 0 !important;
}

/* Hidden fields stay hidden */
.partner-contact .partner-contact-form-card .hs-form-field.hs-fieldtype-hidden,
.partner-contact .partner-contact-form-card .hs-form-field input[type="hidden"] {
	display: none !important;
	margin: 0 !important;
}

/* Errors */
.partner-contact .partner-contact-form-card .hs-error-msgs,
.partner-contact .partner-contact-form-card ul.hs-error-msgs,
.partner-contact .partner-contact-form-card .hs-form-field .hs-error-msg {
	list-style: none !important;
	margin: 4px 0 0 0 !important;
	padding: 0 !important;
}

.partner-contact .partner-contact-form-card .hs-error-msg,
.partner-contact .partner-contact-form-card .hs-error-msgs label,
.partner-contact .partner-contact-form-card .hs-form-field .hs-error-msg {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 18px !important;
	color: #d83536 !important;
}

.partner-contact .partner-contact-form-card .hs-input.invalid,
.partner-contact .partner-contact-form-card .hs-input.error,
.partner-contact .partner-contact-form-card textarea.invalid {
	border-color: #d83536 !important;
}

/* Submit button — left-aligned per Figma */
.partner-contact .partner-contact-form-card .hs_submit,
.partner-contact .partner-contact-form-card .hs-submit {
	margin: 8px 0 0 0 !important;
	padding: 0 !important;
}

.partner-contact .partner-contact-form-card .hs_submit .actions,
.partner-contact .partner-contact-form-card .hs-submit .actions {
	text-align: left !important;
	padding: 0 !important;
	margin: 0 !important;
}

.partner-contact .partner-contact-form-card .hs-button,
.partner-contact .partner-contact-form-card input[type="submit"].hs-button,
.partner-contact .partner-contact-form-card input.hs-button.primary,
.partner-contact .partner-contact-form-card input.hs-button.primary.large,
.partner-contact .partner-contact-form-card .gsp-partner-inquiry-submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: auto !important;
	min-height: 0 !important;
	padding: 15px 30px !important;
	background: #146cff !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 20px !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer !important;
	transition: background 0.15s ease !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	width: auto !important;
	margin: 0 !important;
}

.partner-contact .partner-contact-form-card .hs-button:hover,
.partner-contact .partner-contact-form-card input[type="submit"].hs-button:hover {
	background: #448aff !important;
	color: #fff !important;
}

/* Inline thank-you message */
.partner-contact .partner-contact-form-card .submitted-message {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	line-height: 26px !important;
	color: #1f1f1f !important;
	padding: 24px 0 !important;
	text-align: center !important;
}

.partners-form-placeholder {
	padding: 40px;
	text-align: center;
	color: #6b7280;
}

/* Mobile filter toggle & close — hidden on desktop, shown on mobile */
.partners-archive .partners-mobile-filter-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	height: 36px;
	padding: 8px 14px;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 999px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	color: #000;
	cursor: pointer;
	margin-bottom: 24px;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.partners-archive .partners-mobile-filter-toggle:hover {
	border-color: #648e9a;
	background: #f5f9fa;
}

.partners-archive .partners-mobile-filter-toggle svg {
	flex-shrink: 0;
}

.partners-archive .partners-mobile-filter-close {
	display: none;
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	padding: 0;
	background: #fff;
	border: 1px solid #9bbac3;
	border-radius: 999px;
	color: #000;
	cursor: pointer;
	z-index: 5;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.partners-archive .partners-mobile-filter-close svg {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

.partners-archive .partners-mobile-filter-close:hover,
.partners-archive .partners-mobile-filter-close:focus-visible {
	color: #146cff;
	border-color: #146cff;
	outline: none;
}

.partners-archive .partners-mobile-filter-backdrop {
	display: none;
}

body.partners-filter-open {
	overflow: hidden;
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
	.partners-archive .partners-mobile-filter-toggle {
		display: inline-flex;
	}

	.partners-archive .partners-mobile-filter-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.partners-archive .partners-mobile-filter-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		z-index: 999998;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.2s ease;
	}

	body.partners-filter-open .partners-archive .partners-mobile-filter-backdrop,
	.partners-archive.is-filter-open .partners-mobile-filter-backdrop {
		opacity: 1;
		pointer-events: auto;
	}

	.partners-layout {
		grid-template-columns: 1fr;
		position: relative;
	}

	.partners-archive .partners-facets {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: auto !important;
		width: min(420px, 92vw);
		max-width: 92vw;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		background: #fff;
		padding: 56px 24px 24px;
		overflow-y: auto;
		overscroll-behavior: contain;
		gap: 20px;
		z-index: 999999;
		box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
		transform: translateX(100%);
		transition: transform 0.25s ease;
		box-sizing: border-box;
	}

	body.partners-filter-open .partners-archive .partners-facets,
	.partners-archive.is-filter-open .partners-facets {
		transform: translateX(0);
	}

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

	.partners-hero-card {
		padding: 50px 40px;
		gap: 40px;
	}

	/* Single partner */
	body.single-partner .partner-detail .partner-detail-grid,
	.partner-detail .partner-detail-grid {
		grid-template-columns: 1fr !important;
		gap: 32px !important;
	}

	body.single-partner .partner-detail .partner-detail-sidebar,
	.partner-detail .partner-detail-sidebar {
		position: static !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.partner-detail .partner-detail-hero {
		padding: 75px 0 32px !important;
	}

	.partner-detail .partner-detail-hero-card {
		padding: 50px 40px !important;
	}

	body.single-partner .partner-detail .partner-detail-main,
	.partner-detail .partner-detail-main {
		gap: 40px !important;
	}

	.partner-detail .partner-detail-offering {
		padding: 24px;
		gap: 24px;
	}

	.partner-detail .partner-detail-body {
		padding-bottom: 60px;
	}
}

@media (max-width: 640px) {
	.partners-archive .partners-hero {
		padding: 60px 0 0 !important;
	}

	.partners-title {
		font-size: 32px !important;
		line-height: 38px !important;
	}

	.partners-subtitle {
		font-size: 16px !important;
		line-height: 24px !important;
	}

	.partners-hero-card {
		padding: 32px 20px !important;
		gap: 20px !important;
		border-radius: 24px !important;
	}

	.partners-archive .partners-become-cta {
		padding: 12px 22px !important;
		font-size: 14px !important;
	}

	.partners-grid-section {
		padding: 32px 0 60px !important;
	}

	.partners-card-grid {
		grid-template-columns: 1fr;
	}

	.partners-archive .partners-facets {
		width: 100vw !important;
		max-width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-height: 100vh !important;
		max-height: 100dvh !important;
		min-height: 0 !important;
		padding: 64px 20px 174px !important;
	}

	/* Single partner */
	.partner-detail .partner-detail-hero {
		padding: 60px 0 24px !important;
	}

	.partner-detail .partner-detail-title {
		font-size: 30px !important;
		line-height: 36px !important;
	}

	.partner-detail .partner-detail-tagline {
		font-size: 16px !important;
		line-height: 24px !important;
	}

	.partner-detail .partner-detail-breadcrumbs {
		font-size: 13px !important;
	}

	.partner-detail .partner-detail-hero-card {
		padding: 32px 20px !important;
		gap: 20px !important;
		border-radius: 24px !important;
	}

	.partner-detail .partner-detail-logo {
		width: 120px;
		height: auto;
	}

	.partner-detail .partner-detail-logo img {
		max-height: 110px !important;
	}

	.partner-detail .partner-detail-body {
		padding-bottom: 48px !important;
	}

	body.single-partner .partner-detail .partner-detail-grid,
	.partner-detail .partner-detail-grid {
		grid-template-columns: 1fr !important;
		gap: 24px !important;
	}

	body.single-partner .partner-detail .partner-detail-sidebar,
	.partner-detail .partner-detail-sidebar {
		position: static !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.single-partner .partner-detail .partner-detail-main,
	.partner-detail .partner-detail-main {
		gap: 32px !important;
	}

	/* Contact subpage on mobile */
	.partner-contact .partner-contact-form-section {
		padding: 24px 0 60px !important;
	}

	.partner-contact .partner-contact-form-card {
		padding: 24px 20px !important;
		border-radius: 12px !important;
	}

	.partner-contact .partner-contact-form-card .hs-form fieldset.form-columns-2 {
		flex-direction: column !important;
		gap: 0 !important;
	}

	.partner-detail .partner-detail-section-title {
		font-size: 22px !important;
		line-height: 30px !important;
		margin-bottom: 16px !important;
	}

	.partner-detail .partner-detail-headshot {
		width: 80px !important;
		height: 80px !important;
	}

	.partner-detail .partner-detail-availability {
		font-size: 13px !important;
	}

	.partner-detail .partner-detail-cta {
		height: 44px !important;
		font-size: 15px !important;
	}

	.partner-detail .partner-detail-sidebar-cards {
		gap: 16px !important;
		padding: 16px 0 !important;
	}

	.partner-detail .partner-detail-benefit-value {
		font-size: 20px !important;
		line-height: 28px !important;
	}

	.partner-detail .partner-detail-about-body {
		font-size: 16px !important;
		line-height: 26px !important;
	}

	.partner-detail .partner-detail-offering {
		padding: 20px !important;
		gap: 16px !important;
	}

	.partner-detail .partner-detail-offering-icon {
		width: 56px !important;
		height: 56px !important;
		min-width: 56px !important;
		min-height: 56px !important;
		padding: 14px !important;
	}

	.partner-detail .partner-detail-offering-icon img,
	.partner-detail .partner-detail-offering-icon svg {
		width: 28px !important;
		height: 28px !important;
	}

	.partner-detail .partner-detail-offering-title {
		font-size: 16px !important;
		line-height: 22px !important;
	}

	.partner-detail .partner-detail-offering-content {
		gap: 8px !important;
	}

	.partner-detail .partner-detail-pastwork-stage {
		gap: 16px !important;
	}

	.partner-detail .partner-detail-pastwork-thumb {
		flex: 0 0 calc((100% - 16px) / 2);
		height: auto;
	}

	.partner-detail .partner-detail-reviews-summary {
		flex-direction: column;
		gap: 24px;
	}

	.partner-detail .partner-detail-reviews-avg-num {
		font-size: 40px !important;
	}

	.partner-detail .partner-detail-reviews-summary-right {
		max-width: 100% !important;
		flex-basis: 100% !important;
	}

	.partner-detail .partner-detail-review {
		padding-bottom: 16px !important;
	}

	.partner-detail .partner-detail-review-head {
		flex-wrap: wrap !important;
		gap: 8px !important;
	}

	.partner-services-grid {
		grid-template-columns: 1fr;
	}
}

/* ===== Partners lazy-load (Load more) — replaces numbered pagination ===== */
.partners-archive .partners-loadmore {
	display: flex;
	justify-content: center;
	margin-top: 36px;
}
.partners-archive .partners-loadmore-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 34px;
	background: var(--p-color-blue);
	color: #fff;
	border: 0;
	border-radius: var(--p-radius-button);
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 20px;
	cursor: pointer;
	transition: background 0.2s ease, opacity 0.2s ease;
}
.partners-archive .partners-loadmore-btn:hover {
	background: var(--p-color-blue-dark, #1a264a);
}
.partners-archive .partners-loadmore.is-loading .partners-loadmore-btn {
	opacity: 0.6;
	pointer-events: none;
}
.partners-archive .partners-loadmore.is-loading .partners-loadmore-btn::after {
	content: '';
	width: 16px;
	height: 16px;
	margin-left: 10px;
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-top-color: #fff;
	border-radius: 50%;
	animation: partners-spin 0.7s linear infinite;
}
@keyframes partners-spin { to { transform: rotate(360deg); } }

/* =====================================================================
   Partner directory hero redesign (2026-08-21)
   Center hero (eyebrow/H1/auth sub/CTAs) + search + category-chip finder,
   replacing the old boxed hero-card + left sidebar filter. Uses the real
   theme palette already tokenized above (--p-color-blue #146CFF etc.) plus
   a couple of literal hexes for the mint offer accent, matching the
   approved mockup 1:1 on structure with the theme's real colors swapped in.
   Append-only: nothing above this block was removed or edited.
   ===================================================================== */

.gsp-partners-hero {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
	/* top padding clears the 73px position:fixed desktop header (.sitcky-header) with
	   a comfortable gap now that the eyebrow (which used to sit here) is gone */
	padding: 128px 20px 32px;
	box-sizing: border-box;
}

.gsp-partners-eyebrow {
	display: inline-block;
	color: var(--p-color-blue);
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	margin: 0 0 20px;
}

.gsp-partners-title {
	font-family: 'Inter', sans-serif;
	font-size: clamp(32px, 5vw, 50px);
	line-height: 1.1;
	font-weight: 600;
	color: #1f1f1f;
	letter-spacing: .1px;
	margin: 0 auto 28px;
	max-width: 15ch;
	text-wrap: balance;
}

.gsp-partners-subtitle {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 1.667;
	color: #4b5163;
	margin: 0 auto 38px;
	max-width: 46ch;
	text-wrap: balance;
}

.gsp-partners-subtitle b {
	color: #1f1f1f;
	font-weight: 600;
}

.gsp-partners-ctas {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 0 28px;
}

.gsp-partners-btn {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 700;
	border-radius: var(--p-radius-button);
	padding: 13px 22px;
	cursor: pointer;
	border: 1.5px solid transparent;
	text-decoration: none !important;
	display: inline-block;
	text-align: center;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.gsp-partners-btn--primary {
	background: var(--p-color-blue);
	color: #fff !important;
}

.gsp-partners-btn--primary:hover {
	background: var(--p-color-blue-hover);
}

.gsp-partners-btn--ghost {
	background: transparent;
	color: var(--p-color-blue) !important;
	border-color: var(--p-color-border);
}

.gsp-partners-btn--ghost:hover {
	border-color: var(--p-color-blue);
}

.gsp-partners-finder {
	max-width: 620px;
	margin: 0 auto;
}

.gsp-partners-search {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--p-color-bg-light);
	border: 1.5px solid var(--p-color-border);
	border-radius: var(--p-radius-button);
	padding: 13px 16px;
	margin: 0 0 14px;
}

.gsp-partners-search-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: #6b7280;
	cursor: pointer;
	flex: none;
}

.gsp-partners-search svg {
	width: 19px;
	height: 19px;
	flex: none;
}

.gsp-partners-search input {
	border: none;
	background: transparent;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: #1f1f1f;
	width: 100%;
	outline: none;
}

.gsp-partners-search input::placeholder {
	color: #6b7280;
	opacity: 1;
}

.gsp-partners-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 0 0 8px;
}

.gsp-partners-chip {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #4b5163;
	background: var(--p-color-bg-light);
	border: 1px solid var(--p-color-border);
	border-radius: 999px;
	padding: 7px 14px;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.gsp-partners-chip:hover {
	border-color: var(--p-color-blue);
}

.gsp-partners-chip.on {
	background: #E6F8F1;
	border-color: #95ECD3;
	color: #0f6b52;
}

.gsp-partners-results {
	max-width: 1240px;
	margin: 40px auto 0;
	padding: 0 20px 60px;
	box-sizing: border-box;
}

/* Card additions: offer badge (mint) + locked/unlocked footer state.
   `.partner-card`, `.partner-card-logo` etc. already exist above (pre-redesign)
   and already used this exact palette — these rules only ADD the auth-gated
   offer badge + footer, and give the card flex layout so the footer sits at
   the bottom of every card regardless of description length. */
.partner-card {
	display: flex;
	flex-direction: column;
}

.partner-card-logo {
	position: relative;
	min-height: 132px;
}

.partner-card-offer {
	position: absolute;
	top: 10px;
	right: 10px;
	background: #95ECD3;
	color: #0d5b45;
	font-size: 11.5px;
	font-weight: 700;
	padding: 4px 9px;
	border-radius: 999px;
}

.partner-card-footer {
	margin-top: auto;
	padding-top: 10px;
}

.partner-card-footer-link {
	font-size: 13.5px;
	font-weight: 700;
	color: var(--p-color-blue);
}

.partner-card-locked {
	color: #6b7280;
	font-weight: 600;
	font-size: 12.5px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.partner-card-locked svg {
	width: 13px;
	height: 13px;
	flex: none;
}

/* ===== Mobile ===== */
@media (max-width: 640px) {
	.gsp-partners-hero {
		text-align: center;
		/* top padding clears the 78px position:fixed mobile header (.header-for-mbl)
		   so the eyebrow isn't hidden behind it */
		padding: 96px 20px 24px;
	}

	.gsp-partners-title,
	.gsp-partners-subtitle {
		margin-left: auto;
		margin-right: auto;
		text-align: center;
		max-width: none;
	}

	.gsp-partners-title {
		font-size: clamp(25px, 8vw, 31px);
	}

	.gsp-partners-ctas {
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.gsp-partners-ctas .gsp-partners-btn {
		width: 100%;
	}

	.gsp-partners-chips {
		justify-content: center;
		flex-wrap: wrap;
		overflow-x: visible;
	}

	.gsp-partners-chip {
		flex: none;
	}

	/* Featured "New & Noteworthy" tiles on mobile: show logo, name, and the
	   category chip only — hide the description so the spotlight tiles stay
	   short. Main-grid cards keep their description (this only targets
	   .gsp-partners-feat-item). */
	.gsp-partners-feat-item .partner-card-desc {
		display: none;
	}

	.partner-card-logo {
		min-height: 96px;
	}
}

/* =====================================================================
   NEW & NOTEWORTHY featured row (approved 2026-08-21) — a tinted band
   between the finder and the "All partners" grid, holding 3 rotating
   spotlight cards (same .partner-card component, elevated with a ribbon +
   shadow). Real palette: B500 #146CFF, mint #95ECD3, well #f5f9fa,
   ink #1f1f1f. --gsp-feat-bg is a light B500 tint from the approved
   mockup (mockup's --feat-bg). Append-only.
   ===================================================================== */

.gsp-partners-featured {
	max-width: 1240px;
	margin: 24px auto 0;
	padding: 0 20px;
	box-sizing: border-box;
}

.gsp-partners-featured-band {
	background: #F2F7FF;
	border: 1px solid #e5e7eb;
	border-radius: 22px;
	padding: 24px 26px 26px;
	box-sizing: border-box;
	position: relative;
	overflow: hidden;
}

.gsp-partners-featured-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	flex-wrap: wrap;
	margin: 0 0 18px;
	position: relative;
}

.gsp-partners-featured-title {
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #1f1f1f;
	margin: 0;
}

.gsp-partners-featured-title svg {
	width: 20px;
	height: 20px;
	color: var(--p-color-blue);
	flex: none;
}

.gsp-partners-featured-pill {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #0f6b52;
	background: #E6F8F1;
	border: 1px solid #95ECD3;
	border-radius: 999px;
	padding: 6px 13px;
}

.gsp-partners-featured-pill svg {
	width: 13px;
	height: 13px;
	flex: none;
}

.gsp-partners-featured-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	position: relative;
}

.gsp-partners-feat-item {
	position: relative;
}

.gsp-partners-feat-item .partner-card {
	box-shadow: 0 10px 30px -18px rgba(20, 26, 45, 0.30);
}

.gsp-partners-feat-ribbon {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	background: var(--p-color-blue);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 3px 9px;
	border-radius: 999px;
	pointer-events: none;
}

/* "All partners" header above the main grid, with the subtle A–Z note. */
.gsp-partners-allhead {
	max-width: 1240px;
	margin: 32px auto 12px;
	padding: 0 20px;
	box-sizing: border-box;
}

.gsp-partners-allhead-title {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #1f1f1f;
	margin: 0;
}

.gsp-partners-allhead-note {
	font-weight: 400;
	color: #6b7280;
	font-size: 13px;
}

/* ===== Mobile: featured band becomes a horizontal swipe row ===== */
@media (max-width: 900px) {
	.gsp-partners-featured-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.gsp-partners-featured {
		padding: 0 20px;
	}

	.gsp-partners-featured-band {
		padding: 18px 16px 20px;
		border-radius: 18px;
	}

	.gsp-partners-featured-grid {
		display: flex;
		grid-template-columns: none;
		gap: 10px;
		overflow-x: auto;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
	}

	.gsp-partners-feat-item {
		flex: none;
		width: 220px;
		scroll-snap-align: start;
	}

	.gsp-partners-allhead {
		margin: 24px auto 10px;
	}
}

/* ------------------------------------------------------------------ *
 * 2026-08-21 — partner directory width fix.
 * The finder <form> (.gsp-partners-finder, max-width:620px) and the hero
 * (.gsp-partners-hero, max-width:800px) wrap the featured band, the
 * "All partners" head, and the results grid — all three of which are
 * designed at max-width:1240px but could never reach it inside those
 * narrow, centered ancestors, so every card collapsed to ~175px and its
 * text wrapped two words wide. Unclamp the ancestors; keep the eyebrow,
 * H1, subtitle, CTAs, search box, and chips in a focused centered column;
 * let the three wide sections span their designed 1240px and left-align
 * their card content (it had been inheriting the hero's text-align:center).
 * ------------------------------------------------------------------ */
.gsp-partners-hero { max-width: 1240px; }
.gsp-partners-finder { max-width: none; }

/* keep the header block readable and centered */
.gsp-partners-title { max-width: 500px; margin-left: auto; margin-right: auto; }
.gsp-partners-subtitle { max-width: 46ch; margin-left: auto; margin-right: auto; }
/* authed subhead carries longer copy — give it a wider measure than the anon one */
.gsp-partners-subtitle--wide { max-width: 56ch; }
.gsp-partners-search { max-width: 620px; margin-left: auto; margin-right: auto; }
.gsp-partners-chips { max-width: 760px; margin-left: auto; margin-right: auto; }

/* the wide sections center themselves via their own margin:auto at 1240px;
   stop their contents inheriting the hero's center alignment */
.gsp-partners-featured,
.gsp-partners-allhead,
.gsp-partners-results,
.partners-grid { text-align: left; }

/* New & Noteworthy hides while a search query or non-"All" chip is active
   (toggled by js/partners-filter.js) so the grid below reads as THE result set. */
.gsp-partners-featured.gsp-featured-hidden { display: none; }

/* ============================================================
   Partner benefits refactor (2026-08) — structured Discount Tag
   + Benefit 1-4 checklist. Appended; does not modify existing
   .partner-detail-benefit / .partner-card-offer rules above.
   The generic "Exclusive offer" card badge reuses .partner-card-offer.
   ============================================================ */

/* Discount-tag pill inside the detail benefit box */
.partner-detail .partner-detail-benefit-tag {
	display: inline-block;
	align-self: flex-start;
	background: #95ECD3;
	color: #0f6b52;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 20px;
	padding: 5px 12px;
	border-radius: 999px;
	margin: 0;
}

/* Checkmark benefit list (detail page) */
.partner-detail .partner-benefit-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.partner-detail .partner-benefit-list li {
	position: relative;
	padding-left: 26px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	line-height: 20px;
	color: #1f1f1f;
}

.partner-detail .partner-benefit-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 16px;
	height: 16px;
	border-radius: 999px;
	background: #95ECD3;
	/* mint disc with a B500 check glyph centered inside */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23146CFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 8.5l2.5 2.5L12 5.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
}

@media (max-width: 600px) {
	.partner-detail .partner-detail-benefit-tag {
		font-size: 14px;
	}
	.partner-detail .partner-benefit-list li {
		font-size: 13.5px;
	}
}
