/* Profile Card Widget — base layout + hover effects.
   Colors, fonts, spacing etc. come from the Elementor style controls. */

.pcw-card {
	--pcw-duration: 400ms;
	position: relative;
	box-sizing: border-box;
	transition: background-color var(--pcw-duration) ease, box-shadow var(--pcw-duration) ease;
}

/* Whole-box link: an <a> card that looks identical to the <div> card,
   and ignores theme link colors/underlines. */
a.pcw-card-link,
a.pcw-card-link:hover,
a.pcw-card-link:focus,
a.pcw-card-link:visited {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* ---------- Photo ---------- */
.pcw-image {
	position: relative;
	display: inline-block;
	max-width: 100%;
	overflow: hidden;
	vertical-align: top;
	line-height: 0;
	transition: transform var(--pcw-duration) ease, box-shadow var(--pcw-duration) ease, border-color var(--pcw-duration) ease;
}

.pcw-image img,
.pcw-image-link {
	display: block;
	width: 100%;
	max-width: 100%;
}

.pcw-image img {
	height: auto;
	transition: transform var(--pcw-duration) ease, filter var(--pcw-duration) ease, opacity var(--pcw-duration) ease;
}

.pcw-image-overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-color: transparent;
	opacity: 0;
	transition: opacity var(--pcw-duration) ease;
}

/* ---------- Text ---------- */
.pcw-name,
.pcw-title {
	transition: color var(--pcw-duration) ease;
}
.pcw-name { margin: 0 0 6px; }
.pcw-title { margin: 0 0 14px; }

.pcw-link {
	display: inline-block;
	text-decoration: none;
	transition: color var(--pcw-duration) ease, background-color var(--pcw-duration) ease,
		border-color var(--pcw-duration) ease, box-shadow var(--pcw-duration) ease;
}

/* ---------- Hover triggers ----------
   "image" = hovering the photo, "card" = hovering anywhere on the card. */
.pcw-trigger-image .pcw-image:hover .pcw-image-overlay,
.pcw-trigger-card .pcw-card:hover .pcw-image-overlay,
.pcw-hover-none .pcw-image:hover .pcw-image-overlay {
	opacity: 1;
}

/* Zoom in */
.pcw-hover-zoom-in.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-zoom-in.pcw-trigger-card .pcw-card:hover .pcw-image img {
	transform: scale(1.1);
}

/* Zoom out */
.pcw-hover-zoom-out .pcw-image img { transform: scale(1.12); }
.pcw-hover-zoom-out.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-zoom-out.pcw-trigger-card .pcw-card:hover .pcw-image img {
	transform: scale(1);
}

/* Lift (whole photo moves up) */
.pcw-hover-lift.pcw-trigger-image .pcw-image:hover,
.pcw-hover-lift.pcw-trigger-card .pcw-card:hover .pcw-image {
	transform: translateY(-8px);
}

/* Zoom & rotate */
.pcw-hover-rotate.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-rotate.pcw-trigger-card .pcw-card:hover .pcw-image img {
	transform: scale(1.15) rotate(3deg);
}

/* Grayscale to color */
.pcw-hover-grayscale .pcw-image img { filter: grayscale(100%); }
.pcw-hover-grayscale.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-grayscale.pcw-trigger-card .pcw-card:hover .pcw-image img {
	filter: grayscale(0%);
}

/* Blur to sharp */
.pcw-hover-blur .pcw-image img { filter: blur(3px); transform: scale(1.04); }
.pcw-hover-blur.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-blur.pcw-trigger-card .pcw-card:hover .pcw-image img {
	filter: blur(0);
	transform: scale(1);
}

/* Slide up (image shifts inside its frame) */
.pcw-hover-slide .pcw-image img { transform: scale(1.1) translateY(4%); }
.pcw-hover-slide.pcw-trigger-image .pcw-image:hover img,
.pcw-hover-slide.pcw-trigger-card .pcw-card:hover .pcw-image img {
	transform: scale(1.1) translateY(-4%);
}

/* Respect users who prefer less motion */
@media (prefers-reduced-motion: reduce) {
	.pcw-card,
	.pcw-card * {
		transition-duration: 1ms !important;
	}
	.pcw-card:hover .pcw-image,
	.pcw-card:hover .pcw-image img {
		transform: none !important;
	}
}
