.pr-platform-visual {
	--pr-blue: #3095b4;
	--pr-navy: #172e4b;
	--pr-indigo: #45508b;
	--pr-orange: #f16721;
	--pr-text: #172e4b;
	--pr-muted: #557086;
	--pr-line: #dce9f1;
	--pr-soft-blue: #eaf6fa;
	--pr-soft-orange: #fff1e8;
	--pr-soft-indigo: #f0f1fa;
	--pr-soft-green: #eaf8f0;
	--pr-soft-pink: #fdecef;
	padding: 40px 0;
	font-family: "Mulish", sans-serif;
	font-size: 16px;
	line-height: 32px;
}

.pr-platform-visual * { box-sizing: border-box; }
.pr-platform-wrap { max-width: 1180px; margin: 0 auto; }
.pr-portal-row, .pr-module-grid, .pr-core-grid { display: grid; gap: 24px; }
.pr-portal-row { grid-template-columns: repeat(3, 1fr); margin-bottom: 34px; }

.pr-card, .pr-module-card {
	position: relative;
	display: block;
	text-decoration: none;
	color: var(--pr-text);
	background: #fff;
	border: 1px solid var(--pr-line);
	border-radius: 26px;
	padding: 34px 28px 48px;
	text-align: center;
	box-shadow: 0 14px 36px rgba(23, 46, 75, .05);
	transition: .2s ease;
}

.pr-card[href]::after, .pr-module-card[href]::after {
	content: "→";
	position: absolute;
	right: 26px;
	bottom: 22px;
	color: var(--pr-blue);
	font-size: 26px;
	font-weight: 800;
	line-height: 1;
	transition: .2s ease;
}

.pr-card:hover, .pr-module-card:hover, .pr-core-link:hover, .pr-core-title-link:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 48px rgba(23, 46, 75, .10);
}

.pr-card:hover::after, .pr-module-card:hover::after { right: 20px; }

.pr-icon {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 22px;
}

.pr-icon svg { width: 36px; height: 36px; fill: currentColor; }
.pr-blue { background: var(--pr-soft-blue); color: var(--pr-blue); }
.pr-orange { background: var(--pr-soft-orange); color: var(--pr-orange); }
.pr-indigo { background: var(--pr-soft-indigo); color: var(--pr-indigo); }
.pr-green { background: var(--pr-soft-green); color: #10a455; }
.pr-pink { background: var(--pr-soft-pink); color: #e22d48; }

.pr-card h3, .pr-module-card h4 {
	margin: 0 0 10px;
	color: var(--pr-navy);
	font-size: 25px;
	line-height: 1.15;
	font-weight: 900;
}

.pr-card p, .pr-module-card p {
	margin: 0;
	color: var(--pr-muted);
	font-size: 15px;
	line-height: 1.65;
	font-weight: 400;
}

.pr-connector, .pr-modules-connector {
	width: 2px;
	background: repeating-linear-gradient(to bottom, var(--pr-blue), var(--pr-blue) 6px, transparent 6px, transparent 12px);
	position: relative;
}

.pr-connector { height: 48px; margin: -12px auto 24px; }
.pr-modules-connector { height: 70px; margin: 32px auto 22px; }

.pr-connector:before, .pr-connector:after, .pr-modules-connector:before, .pr-modules-connector:after {
	content: "";
	position: absolute;
	left: 50%;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	transform: translateX(-50%);
}

.pr-connector:before, .pr-modules-connector:before { top: -7px; background: var(--pr-indigo); }
.pr-connector:after, .pr-modules-connector:after { bottom: -7px; background: var(--pr-orange); }

.pr-core {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(rgba(255, 255, 255, .10) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .10) 1px, transparent 1px),
		radial-gradient(circle at 14% 18%, rgba(255, 255, 255, .30), transparent 22%),
		radial-gradient(circle at 86% 20%, rgba(255, 255, 255, .18), transparent 24%),
		linear-gradient(135deg, var(--pr-blue) 0%, var(--pr-indigo) 100%);
	background-size: 42px 42px, 42px 42px, auto, auto, auto;
	border-radius: 36px;
	padding: 54px 46px 62px;
	color: #fff;
	text-align: center;
	box-shadow: 0 26px 70px rgba(48, 149, 180, .24);
}

.pr-core:before {
	content: "";
	position: absolute;
	inset: 22px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 28px;
	pointer-events: none;
}

.pr-core-content { position: relative; z-index: 2; }

.pr-core-title-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: #fff;
	text-decoration: none;
	transition: .2s ease;
}

.pr-core h3 {
	margin: 0;
	color: #fff;
	font-size: clamp(44px, 6vw, 68px);
	line-height: 1;
	font-weight: 900;
	letter-spacing: -0.03em;
}

.pr-core-title-link span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .25);
	color: #fff;
	font-size: 30px;
	transition: .2s ease;
}

.pr-core-title-link:hover span { transform: translateX(4px); background: rgba(255, 255, 255, .22); }

.pr-core p {
	margin: 18px 0 82px;
	color: rgba(255, 255, 255, .92);
	font-size: 20px;
	line-height: 1.5;
}

.pr-core-grid {
	grid-template-columns: repeat(4, 1fr);
	position: relative;
	z-index: 3;
	margin-top: 20px;
}

.pr-core-link {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 72px;
	padding: 16px;
	color: var(--pr-navy);
	text-decoration: none;
	font-weight: 900;
	background: rgba(255, 255, 255, .96);
	border: 1px solid rgba(255, 255, 255, .70);
	border-radius: 18px;
	transition: .2s ease;
	font-size: 16px;
	line-height: 1.3;
}

.pr-core-link svg { width: 22px; height: 22px; fill: var(--pr-blue); flex: 0 0 22px; }

.pr-market-item { position: relative; }

.pr-market-note {
	position: absolute;
	left: 56%;
	bottom: calc(100% + 12px);
	z-index: 6;
	width: 165px;
	transform: translateX(-50%) rotate(8deg);
	pointer-events: none;
}

.pr-speech {
	position: relative;
	display: block;
	padding: 12px 14px;
	background: #ffffff;
	color: #172e4b;
	border-radius: 14px;
	border: 1px solid rgba(255, 255, 255, .35);
	box-shadow: 0 16px 40px rgba(23, 46, 75, .18);
	font-size: 11px;
	line-height: 1.35;
	font-weight: 700;
	text-align: center;
}

.pr-speech:before {
	content: "";
	display: block;
	width: 36px;
	height: 4px;
	border-radius: 999px;
	background: #f16721;
	margin: 0 auto 8px;
}

.pr-speech:after {
	content: "";
	position: absolute;
	left: 26px;
	bottom: -6px;
	width: 12px;
	height: 12px;
	background: #ffffff;
	transform: rotate(45deg);
	border-right: 1px solid rgba(23, 46, 75, .08);
	border-bottom: 1px solid rgba(23, 46, 75, .08);
}

.pr-extra-label { text-align: center; margin-bottom: 24px; }
.pr-extra-label span {
	display: inline-block;
	border-radius: 999px;
	padding: 12px 20px;
	background: var(--pr-soft-orange);
	color: var(--pr-orange);
	font-weight: 900;
	line-height: 1.2;
}

.pr-module-grid { grid-template-columns: repeat(4, 1fr); position: relative; }
.pr-module-card { padding: 30px 24px 48px; min-height: 260px; }
.pr-module-card .pr-icon { width: 82px; height: 82px; margin-bottom: 20px; }
.pr-module-card h4 { font-size: 22px; }

/* Renamed from .pr-logo-strip to .pr-integrations-strip to avoid a clash
   with the standalone logo-strip section that used the same original name. */
.pr-integrations-strip {
	display: block;
	margin-top: 34px;
	padding: 28px 34px;
	background: #ffffff;
	border: 1px solid var(--pr-line);
	border-radius: 26px;
	box-shadow: 0 14px 36px rgba(23, 46, 75, .05);
	text-align: center;
	text-decoration: none;
	transition: .2s ease;
	cursor: pointer;
}

.pr-integrations-strip:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 48px rgba(23, 46, 75, .10);
}

.pr-integrations-strip:hover .pr-integrations-strip-title {
	color: var(--pr-blue);
}

.pr-integrations-strip-title {
	margin-bottom: 22px;
	color: var(--pr-navy);
	font-size: 14px;
	line-height: 1.4;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.pr-integrations-strip-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 22px 30px;
	align-items: center;
}

.pr-integrations-strip-grid img {
	display: block;
	max-width: 130px;
	max-height: 42px;
	object-fit: contain;
	margin: 0 auto;
	filter: drop-shadow(0 8px 14px rgba(23, 46, 75, .10));
}

/* HOVER FIX */
.pr-platform-visual .pr-core-link,
.pr-platform-visual .pr-core-link:link,
.pr-platform-visual .pr-core-link:visited,
.pr-platform-visual .pr-core-link:hover,
.pr-platform-visual .pr-core-link:active,
.pr-platform-visual .pr-core-link:focus {
	color: #172e4b !important;
	opacity: 1 !important;
	visibility: visible !important;
	text-decoration: none !important;
}

.pr-platform-visual .pr-core-link svg,
.pr-platform-visual .pr-core-link:hover svg,
.pr-platform-visual .pr-core-link:active svg,
.pr-platform-visual .pr-core-link:focus svg {
	fill: #3095b4 !important;
}

.pr-platform-visual .pr-core-link:hover {
	background: #ffffff !important;
	color: #172e4b !important;
}

.pr-platform-visual .pr-core-link:hover * { color: #172e4b !important; }

@media (max-width: 980px) {
	.pr-portal-row,
	.pr-module-grid,
	.pr-core-grid { grid-template-columns: repeat(2, 1fr); }

	.pr-core p { margin-bottom: 34px; }

	.pr-market-note {
		position: static;
		width: 100%;
		transform: none;
		margin-top: 16px;
	}

	.pr-speech { border-radius: 18px; }

	.pr-speech:after { display: none; }

	.pr-integrations-strip-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
	.pr-portal-row,
	.pr-module-grid,
	.pr-core-grid { grid-template-columns: 1fr; }

	.pr-core { padding: 38px 22px 46px; }
	.pr-core h3 { font-size: 38px; }
	.pr-core-title-link { gap: 10px; }
	.pr-core-title-link span { width: 36px; height: 36px; font-size: 24px; }

	.pr-integrations-strip { padding: 24px 20px; }
	.pr-integrations-strip-grid { grid-template-columns: repeat(2, 1fr); }
}
