/* ==========================================================
   AI Services page styles
   Loaded by templates/views/assets/ai-services.html
   ========================================================== */

/* page-specific hero visual (vx- scoped) */
.vx-graph {
	position: relative;
	height: 414px;
}
.vx-graph svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.vx-graph .edge {
	fill: none;
	stroke: rgba(16, 24, 32, 0.14);
	stroke-width: 1.5;
}
.vx-graph .edge.h {
	stroke-dasharray: 4 5;
	stroke: rgba(226, 119, 74, 0.45);
}
.vx-graph .pulse {
	fill: var(--tone);
}
.vx-graph .pulse.h {
	fill: #e2774a;
}
.vx-node rect {
	fill: #fff;
	stroke: rgba(16, 24, 32, 0.1);
}
.vx-node text {
	font: 400 12.5px var(--font-body);
	fill: var(--ink-2);
}
.vx-node.tool text {
	fill: var(--ink);
}
.vx-core circle.o {
	fill: color-mix(in srgb, var(--tone) 10%, #fff);
	stroke: color-mix(in srgb, var(--tone) 35%, transparent);
}
.vx-core circle.i {
	fill: url(#vx-core-g);
}
.vx-core text {
	font: 400 12px var(--font-mono);
	fill: #fff;
	letter-spacing: 0.04em;
}
.vx-ring {
	fill: none;
	stroke: color-mix(in srgb, var(--tone) 40%, transparent);
	transform-origin: 260px 190px;
	animation: vx-ring 2.6s ease-out infinite;
}
@keyframes vx-ring {
	from {
		transform: scale(0.85);
		opacity: 1;
	}
	to {
		transform: scale(1.45);
		opacity: 0;
	}
}
.vx-status {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	height: 44px;
	border-radius: 14px;
	background: var(--ink);
	color: #e7eaee;
	font: 400 12.5px/44px var(--font-mono);
	overflow: hidden;
}
.vx-status span {
	position: absolute;
	left: 16px;
	right: 16px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0;
	transform: translateY(10px);
	transition:
		opacity 0.4s,
		transform 0.4s var(--ease);
}
.vx-status span b {
	font-weight: 400;
	color: var(--mint);
	margin-right: 8px;
}
.vx-status span.h b {
	color: var(--peach);
}
.vx-graph[data-step='0'] .vx-status span:nth-child(1),
.vx-graph[data-step='1'] .vx-status span:nth-child(2),
.vx-graph[data-step='2'] .vx-status span:nth-child(3),
.vx-graph[data-step='3'] .vx-status span:nth-child(4) {
	opacity: 1;
	transform: none;
}
/* "Ready-made starting points", one bot per card, each preview shows what that bot does (st- scoped) */
.st-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.st-card {
	--wt: var(--tone);
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--wt) 14%, transparent),
		var(--shadow-sm);
	transition:
		transform 0.5s var(--ease),
		box-shadow 0.5s var(--ease);
}
.st-card:hover {
	transform: translateY(-6px);
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--wt) 38%, transparent),
		var(--shadow-lg);
}
.st-prev {
	position: relative;
	height: 230px;
	padding: 18px 16px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 8px;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--wt) 18%, transparent), transparent 60%),
		linear-gradient(170deg, color-mix(in srgb, var(--wt) 9%, #fff), var(--paper));
	border-bottom: 1px solid color-mix(in srgb, var(--wt) 12%, transparent);
}
.st-prev::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(color-mix(in srgb, var(--wt) 22%, transparent) 1px, transparent 1px);
	background-size: 16px 16px;
	-webkit-mask-image: linear-gradient(180deg, #000, transparent 70%);
	mask-image: linear-gradient(180deg, #000, transparent 70%);
	pointer-events: none;
}
.st-prev > * {
	position: relative;
}
.st-tag {
	position: absolute;
	top: 14px;
	left: 16px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--wt) 85%, #101820);
}
.st-tag::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--mint);
	box-shadow: 0 0 0 3px rgba(0, 195, 137, 0.2);
}
.st-b {
	max-width: 86%;
	padding: 8px 11px;
	border-radius: 13px;
	font-size: 12.5px;
	line-height: 1.45;
	opacity: 0;
	transform: translateY(8px);
	transition:
		opacity 0.45s var(--ease),
		transform 0.55s var(--ease);
}
.st-b.u {
	align-self: flex-end;
	color: #fff;
	background: var(--ink);
	border-bottom-right-radius: 4px;
}
.st-b.a {
	align-self: flex-start;
	background: #fff;
	box-shadow: 0 0 0 1px var(--line);
	border-bottom-left-radius: 4px;
}
.st-card.is-in .st-b,
.st-card.is-in .st-x {
	opacity: 1;
	transform: none;
}
.st-card.is-in .st-prev > :nth-child(3) {
	transition-delay: 0.35s;
}
.st-card.is-in .st-prev > :nth-child(4) {
	transition-delay: 0.7s;
}
.st-card.is-in .st-prev > :nth-child(5) {
	transition-delay: 1.05s;
}
.st-x {
	opacity: 0;
	transform: translateY(8px);
	transition:
		opacity 0.45s var(--ease),
		transform 0.55s var(--ease);
}
/* sales: qualification chips + booked slot */
.st-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}
.st-chips span {
	padding: 5px 9px;
	border-radius: 999px;
	font-size: 11px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--line);
}
.st-chips span::before {
	content: '\2713';
	margin-right: 5px;
	color: #00905f;
}
.st-slot {
	display: grid;
	grid-template-columns: 38px 1fr;
	gap: 10px;
	align-items: center;
	padding: 9px 10px;
	border-radius: 13px;
	background: #fff;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--wt) 30%, transparent),
		0 10px 20px -14px var(--wt);
	font-size: 12px;
}
.st-slot i {
	display: grid;
	place-items: center;
	height: 38px;
	border-radius: 10px;
	font: 400 10px/1.1 var(--font-mono);
	font-style: normal;
	text-align: center;
	color: #fff;
	background: linear-gradient(140deg, var(--wt), #0072ce);
}
.st-slot small {
	display: block;
	color: var(--subtle);
	font-size: 10.5px;
}
/* query: answer with a mini chart + source */
.st-ans {
	padding: 10px 11px;
	border-radius: 13px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--line);
	font-size: 12px;
}
.st-bars {
	display: grid;
	gap: 5px;
	margin-top: 8px;
}
.st-bars div {
	display: grid;
	grid-template-columns: 46px 1fr 34px;
	gap: 6px;
	align-items: center;
	font: 400 10px/1 var(--font-mono);
	color: var(--muted);
}
.st-bars div i {
	height: 6px;
	border-radius: 6px;
	background: linear-gradient(90deg, var(--wt), #00b5e2);
	transform-origin: left;
	transform: scaleX(0);
	transition: transform 1s var(--ease) 0.9s;
}
.st-card.is-in .st-bars div i {
	transform: scaleX(var(--v));
}
.st-src {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 8px;
	padding: 4px 8px;
	border-radius: 6px;
	font: 400 10px/1 var(--font-mono);
	color: color-mix(in srgb, var(--wt) 85%, #101820);
	background: color-mix(in srgb, var(--wt) 9%, #fff);
}
/* survey: rating + progress */
.st-rate {
	display: flex;
	gap: 5px;
}
.st-rate span {
	flex: 1;
	display: grid;
	place-items: center;
	height: 30px;
	border-radius: 9px;
	font-size: 12px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--line);
}
.st-rate span.on {
	color: #fff;
	background: var(--wt);
	box-shadow: none;
}
.st-prog {
	display: flex;
	align-items: center;
	gap: 8px;
	font: 400 10px/1 var(--font-mono);
	color: var(--muted);
}
.st-prog b {
	flex: 1;
	height: 5px;
	border-radius: 5px;
	background: rgba(16, 24, 32, 0.08);
	overflow: hidden;
}
.st-prog b::after {
	content: '';
	display: block;
	height: 100%;
	width: 0;
	border-radius: inherit;
	background: var(--mint);
	transition: width 1.2s var(--ease) 1s;
}
.st-card.is-in .st-prog b::after {
	width: 75%;
}
.st-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 20px 22px 22px;
}
.st-body small {
	font: 400 11px/1 var(--font-mono);
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--wt) 85%, #101820);
}
.st-body b {
	display: block;
	margin-top: 9px;
	font: 400 1.25rem/1.25 var(--font-display);
	letter-spacing: -0.015em;
}
.st-body p {
	margin-top: 6px;
	color: var(--muted);
	font-size: 14.5px;
	line-height: 1.6;
}
.st-body .go {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: auto;
	padding-top: 16px;
	font-size: 14px;
	color: color-mix(in srgb, var(--wt) 85%, #101820);
}
.st-body .go svg {
	width: 13px;
	height: 13px;
	transition: transform 0.3s var(--ease);
}
.st-card:hover .go svg {
	transform: translateX(3px);
}
@media (max-width: 1100px) {
	.st-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 640px) {
	.st-grid {
		grid-template-columns: 1fr;
	}
}
@media (prefers-reduced-motion: reduce) {
	.st-b,
	.st-x {
		opacity: 1;
		transform: none;
	}
	.st-bars div i {
		transform: scaleX(var(--v));
	}
}
