
/* 1. Hero chat: consistent 8/12/16 spacing rhythm */
.fsi-head {
	padding: 20px 20px 0;
}

.fsi-tabs {
	margin: 16px 20px 0;
}

.fsi-panel {
	padding: 16px 20px 20px;
	gap: 16px;
}

.fsi-thread {
	display: grid;
	gap: 12px;
}

.fsi-thread .fsi-a {
	line-height: 1.55;
}

.fsi-links {
	gap: 8px;
}

.fsi-foot {
	padding: 12px 20px;
}

/* 2. Robot stays visible on hover; subtle nudge instead of restarting the pop-in */
.spanny-pop:hover .sp-bot, .spanny-pop:focus-visible .sp-bot {
	animation: spPop .9s cubic-bezier(.2, .9, .3, 1.35) .5s both, spHover 4.2s ease-in-out 1.5s infinite;
}

.spanny-pop .sp-flip {
	transition: translate .3s ease;
}

.spanny-pop:hover .sp-flip, .spanny-pop:focus-visible .sp-flip {
	animation: spNudge 1.2s ease-in-out infinite;
}

@keyframes spNudge {
	0%, 100% {
		rotate: 0deg;
		translate: 0 0;
	}
	
	50% {
		rotate: -5deg;
		translate: 0 -4px;
	}
}

@media (prefers-reduced-motion:reduce) {
	.spanny-pop:hover .sp-flip, .spanny-pop:focus-visible .sp-flip {
		animation: none;
	}
}

/* 3. AppExchange rating: space before the star */
.stat .v .st-star {
	margin-left: 6px;
	font-size: .8em;
	vertical-align: .04em;
}

.appx-r span {
	margin-left: 6px;
}

/* 4. Split section head: center the intro text against the heading */
.wrap > .section-head.sh-split > p {
	align-self: center;
	margin: 0;
}

/* 5. Story card arrow: crisp, centered icon */
.h-ind2 .rl-go {
	font-size: 0;
	flex: 0 0 34px;
}

.h-ind2 .rl-go::before {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
}

.h-ind2:hover .rl-go {
	transform: translateX(3px);
}

/* 6. AI section robot: supporting size */
.h-ai-art img {
	max-height: 240px;
	max-width: 100%;
	height: auto;
}

/* 7. Floating chat: shadow and rounded edge on the scroll container so nothing is clipped */
.fsi-pop {
	border-radius: 20px;
	border: 1px solid #d5dee8;
	box-shadow: 0 18px 48px rgba(13, 30, 66, .32), 0 2px 6px rgba(13, 30, 66, .12);
	background: #fff;
}

.fsi-pop > .fsi {
	box-shadow: none;
	border-radius: 0;
}

/* Mobile */
@media (max-width:600px) {
	.section {
		padding-block: 40px;
	}
	
	.section.quote {
		padding-block: 40px;
	}
	
	.section-head {
		margin-bottom: 24px;
	}
	
	.cta-band .wrap {
		padding-block: 44px;
		gap: 20px;
	}
	
	.logos-band .eyebrow {
		margin-bottom: 18px !important;
	}
	
	.h-ai-grid {
		gap: 24px;
	}
	
	.h-ai-art img {
		max-height: 150px;
	}
	
	main .btn {
		width: 100%;
		justify-content: center;
		text-align: center;
	}
	
	main .actions, main .h-ai-acts, .cta-band .wrap > div:last-child {
		width: 100%;
	}
	
	.fsi-links .btn, .fsi-form .btn {
		width: auto;
	}
	
	.site-footer .news .btn, .site-footer .touch .btn {
		width: 100%;
		justify-content: center;
		justify-self: stretch;
	}
	
	.site-footer .values {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px 8px;
		justify-items: center;
		text-align: center;
	}
	
	.site-footer .values .vt, .site-footer .values .appx {
		grid-column: 1/-1;
	}
	
	.site-footer .values .vt {
		font-size: 20px;
	}
	
	.val {
		flex-direction: column;
		gap: 8px;
	}
	
	.val-ic {
		width: 56px;
		height: 56px;
	}
	
	.val-ic img {
		width: 40px;
		height: 40px;
	}
	
	.val b {
		font-size: 17px;
	}
}
