/**
 * DC25 Cover Plus Styles
 * Styles for cover and group block link and hover zoom functionality
 */

/* Cover link wrapper */
.wp-block-cover.has-dc25-link,
.wp-block-group.has-dc25-link {
	position: relative;
	cursor: pointer;
}

/* Reset WordPress constrained layout spacing for group blocks with links */
.wp-block-group.has-dc25-link.is-layout-constrained > * {
	margin-block-start: 0 !important;
}

/* Re-apply spacing to non-link elements (skip first real content after link) */
.wp-block-group.has-dc25-link.is-layout-constrained > *:not(.dc25-group-link) ~ *:not(.dc25-group-link) {
	margin-block-start: 24px !important;
}

/* Invisible overlay link */
.wp-block-cover.has-dc25-link > .dc25-cover-link,
.wp-block-group.has-dc25-link > .dc25-group-link {
	position: absolute;
	inset: 0;
	z-index: 10;
	display: block;
	text-decoration: none;
	margin-block-start: 0 !important; /* Override WordPress core spacing rules */
	margin-block-end: 0 !important;
	margin-inline-start: 0 !important;
	margin-inline-end: 0 !important;
}

/* Ensure inner container doesn't block the link */
.wp-block-cover.has-dc25-link > .wp-block-cover__inner-container,
.wp-block-group.has-dc25-link > *:not(.dc25-group-link) {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

/* Remove WordPress core spacing from first content element after link in group blocks */
.wp-block-group.has-dc25-link > .dc25-group-link + * {
	margin-block-start: 0 !important;
}

/* Restore pointer events for inner links and buttons */
.wp-block-cover.has-dc25-link .wp-block-cover__inner-container a,
.wp-block-cover.has-dc25-link .wp-block-cover__inner-container button,
.wp-block-cover.has-dc25-link .wp-block-cover__inner-container input,
.wp-block-cover.has-dc25-link .wp-block-cover__inner-container select,
.wp-block-cover.has-dc25-link .wp-block-cover__inner-container textarea,
.wp-block-group.has-dc25-link a,
.wp-block-group.has-dc25-link button,
.wp-block-group.has-dc25-link input,
.wp-block-group.has-dc25-link select,
.wp-block-group.has-dc25-link textarea {
	position: relative;
	z-index: 11;
	pointer-events: auto;
}

/* Hover zoom effect */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-cover.has-dc25-zoom .wp-block-cover__image-background,
	.wp-block-cover.has-dc25-zoom .wp-block-cover__video-background,
	.wp-block-cover.has-dc25-zoom > img,
	.wp-block-cover.has-dc25-zoom > video {
		transition: transform 0.5s ease, filter 0.35s ease;
		will-change: transform, filter;
	}

	.wp-block-cover.has-dc25-zoom:hover .wp-block-cover__image-background,
	.wp-block-cover.has-dc25-zoom:hover .wp-block-cover__video-background,
	.wp-block-cover.has-dc25-zoom:hover > img,
	.wp-block-cover.has-dc25-zoom:hover > video {
		transform: scale(1.05);
		filter: brightness(0.9);
	}

	/* Group block zoom effect - applies to child images and the entire block */
	.wp-block-group.has-dc25-zoom img,
	.wp-block-group.has-dc25-zoom video {
		transition: transform 0.5s ease, filter 0.35s ease;
		will-change: transform, filter;
	}

	.wp-block-group.has-dc25-zoom:hover img,
	.wp-block-group.has-dc25-zoom:hover video {
		transform: scale(1.05);
		filter: brightness(0.9);
	}
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
	.wp-block-cover.has-dc25-zoom .wp-block-cover__image-background,
	.wp-block-cover.has-dc25-zoom .wp-block-cover__video-background,
	.wp-block-cover.has-dc25-zoom > img,
	.wp-block-cover.has-dc25-zoom > video,
	.wp-block-group.has-dc25-zoom img,
	.wp-block-group.has-dc25-zoom video {
		transition: none;
		will-change: auto;
	}
}