/* Homepage service-card language, scaled within the existing Elementor tiles. */
.pers-services-page #primary .pls-banner {
	container-type: inline-size;
	overflow: hidden;
	color: #231f20;
}

.pers-services-page #primary .pls-banner .banner-content-wrap {
	padding: 0;
	align-items: flex-start;
	justify-content: flex-start;
}

.pers-services-page #primary .pls-banner .banner-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	width: 80%;
	max-width: none;
	padding: clamp(20px, 7cqw, 34px);
	text-align: left;
}

.pers-services-page #primary .pls-banner .banner-title-wrap,
.pers-services-page #primary .pls-banner .banner-content-text {
	margin: 0;
}

.pers-services-page #primary .pls-banner h3.banner-title {
	margin: 0;
	font-size: clamp(22px, 7cqw, 32px);
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: 0;
	color: #231f20;
	text-wrap: balance;
}

.pers-services-page #primary .pls-banner .banner-content-text {
	font-size: clamp(15px, 3.8cqw, 18px);
	font-weight: 300;
	line-height: 1.45;
	color: #3f3739;
	text-wrap: pretty;
}

.pers-services-page #primary .pls-banner .banner-button {
	position: static;
	margin: 10px 0 0;
}

.pers-services-page #primary .pls-banner .banner-button a {
	position: static;
	display: inline-block;
	min-height: 0;
	margin: 0;
	padding: 0 0 3px;
	border: 0;
	background: transparent;
	box-shadow: none;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #744b3a;
	opacity: 0;
	transition: opacity .5s cubic-bezier(.16, 1, .3, 1);
}

/* Stretch the existing destination link across the photograph. */
.pers-services-page #primary .pls-banner .banner-button a::before {
	content: '';
	position: absolute;
	inset: 0;
	width: auto;
	height: auto;
	border: 0;
	background: transparent;
	transform: none;
	z-index: 2;
}

.pers-services-page #primary .pls-banner .banner-button a::after {
	content: '';
	position: static;
	display: block;
	width: 100%;
	height: 1px;
	margin-top: 3px;
	background: currentColor;
	transform: scaleX(.35);
	transform-origin: left;
	transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

.pers-services-page #primary .pls-banner .banner-image img {
	transform: scale(1);
	transition: transform .9s cubic-bezier(.16, 1, .3, 1);
}

.pers-services-page #primary .pls-banner:is(:hover, :focus-within) .banner-image img {
	transform: scale(1.03);
}

.pers-services-page #primary .pls-banner:is(:hover, :focus-within) .banner-button a {
	opacity: 1;
}

.pers-services-page #primary .pls-banner:is(:hover, :focus-within) .banner-button a::after {
	transform: scaleX(1);
}

.pers-services-page #primary .pls-banner:focus-within {
	outline: 2px solid #9d705b;
	outline-offset: 3px;
}

@media (hover: none), (max-width: 767px) {
	.pers-services-page #primary .pls-banner .banner-button a { opacity: 1; }
}

/* Keep the existing compact tablet columns without clipping the longer names. */
@container (max-width: 280px) {
	.pers-services-page #primary .pls-banner .banner-content {
		width: 94%;
		gap: 4px;
		padding: 12px;
	}
	.pers-services-page #primary .pls-banner h3.banner-title { font-size: clamp(16px, 8cqw, 18px); }
	.pers-services-page #primary .pls-banner .banner-content-text { font-size: 12px; }
	.pers-services-page #primary .pls-banner .banner-button { margin-top: 6px; }
	.pers-services-page #primary .pls-banner .banner-button a { font-size: 10px; letter-spacing: .1em; }
}

@media (prefers-reduced-motion: reduce) {
	.pers-services-page #primary .pls-banner :is(.banner-image img, .banner-button a),
	.pers-services-page #primary .pls-banner .banner-button a::after {
		transition: none;
	}
}
