/* Pictures Card */
.danalyx-picture-card {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

/* Media wrapper */
.danalyx-picture-media {
	position: relative;
	overflow: hidden;
	width: 100%;
}

/* Link wrapper to make full image clickable */
.danalyx-picture-link {
	display: block;
	line-height: 0;
}

/* Image base */
.danalyx-picture-media img {
	width: 100%;
	height: auto;
	display: block;

	/* Filters via vars */
	filter:
		brightness(var(--dxa-pic-bright, 100%))
		contrast(var(--dxa-pic-contrast, 100%))
		saturate(var(--dxa-pic-sat, 100%))
		grayscale(var(--dxa-pic-gray, 0%))
		blur(var(--dxa-pic-blur, 0px));

	transition: transform var(--dxa-picfx-ms, 350ms) cubic-bezier(0.22,0.61,0.36,1),
	            filter    var(--dxa-picfx-ms, 350ms) cubic-bezier(0.22,0.61,0.36,1),
	            opacity   var(--dxa-picfx-ms, 350ms) cubic-bezier(0.22,0.61,0.36,1);
	transform: scale(1);
}




/* per-slide effects */
.dxa-picfx-zoom:hover .danalyx-picture-media img{ transform: scale(1.08) !important; }
.dxa-picfx-grayscale .danalyx-picture-media img{ filter: grayscale(100%) !important; }
.dxa-picfx-grayscale:hover .danalyx-picture-media img{ filter: grayscale(0%) !important; }
.dxa-picfx-blur:hover .danalyx-picture-media img{ filter: blur(2px) !important; }
.dxa-picfx-none:hover .danalyx-picture-media img{ transform: none !important; filter: none !important; }


/* Hover zoom + lift */
.danalyx-picture-card:hover .danalyx-picture-media img {
	transform: scale(max(1, calc(var(--dxa-pic-hover-scale, 108%) / 100)));
}

/* Overlay */
.danalyx-picture-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--dxa-pic-overlay, #000);
	opacity: 0;
	transition: opacity 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
	pointer-events: none;
}

.danalyx-picture-card:hover::after {
	opacity: calc(var(--dxa-pic-overlay-op, 18%) / 100);
}

/* Caption base */
.danalyx-picture-caption {
	position: relative;
	padding: 12px 12px;
}

/* Overlay caption mode */
.danalyx-picture-card[data-caption-mode="overlay"] .danalyx-picture-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
}

/* Overlay visibility behavior defaults (hover) */
.danalyx-picture-card[data-caption-mode="overlay"] .danalyx-picture-caption {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 350ms cubic-bezier(0.22, 0.61, 0.36, 1),
	            transform 350ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.danalyx-picture-card:hover .danalyx-picture-caption {
	opacity: 1;
	transform: translateY(0);
}
















/* base */
.danalyx-pic-media { position: relative; overflow: hidden; }

/* caption shared */
.danalyx-pic-caption {
	transition: opacity 220ms ease, transform 220ms ease, max-height 260ms ease;
}

/* overlay mode */
.danalyx-carousel[data-caption-mode="overlay"] .danalyx-pic-caption {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: 10px 12px;
}

/* below mode */
.danalyx-carousel[data-caption-mode="below"] .danalyx-pic-caption {
	position: relative;
	padding: 10px 0 0 0;
}

/* visibility = always */
.danalyx-carousel[data-caption-vis="always"] .danalyx-pic-caption {
	opacity: 1;
	transform: translateY(0);
	max-height: 999px;
}

/* visibility = hover */
.danalyx-carousel[data-caption-vis="hover"][data-caption-mode="overlay"] .danalyx-pic-caption {
	opacity: 0;
	transform: translateY(8px);
}
.danalyx-carousel[data-caption-vis="hover"][data-caption-mode="overlay"] .danalyx-item:hover .danalyx-pic-caption {
	opacity: 1;
	transform: translateY(0);
}

/* BELOW + hover must SLIDE OUT */
.danalyx-carousel[data-caption-vis="hover"][data-caption-mode="below"] .danalyx-pic-caption {
	opacity: 0;
	transform: translateY(-8px);
	max-height: 0;
	overflow: hidden;
}
.danalyx-carousel[data-caption-vis="hover"][data-caption-mode="below"] .danalyx-item:hover .danalyx-pic-caption {
	opacity: 1;
	transform: translateY(0);
	max-height: 200px; /* enough for typical captions */
}







/* ✅ Strong + visible transitions (viewport-based) */
.danalyx-carousel .danalyx-viewport{
	transition: transform .45s ease, opacity .45s ease, filter .45s ease;
	transform: translateZ(0);
	will-change: transform, opacity, filter;
}

/* Fade pulse (very visible) */
.danalyx-carousel.dxa-pic-fade.dxa-pic-anim .danalyx-viewport{
	opacity: .08;
}
.danalyx-carousel.dxa-pic-fade .danalyx-viewport{ opacity: 1; }

/* Zoom pulse (very visible) */
.danalyx-carousel.dxa-pic-zoom.dxa-pic-anim .danalyx-viewport{
	transform: scale(.92);
}

/* Flip pulse (very visible) */
.danalyx-carousel.dxa-pic-flip .danalyx-viewport{
	perspective: 1000px;
	transform-style: preserve-3d;
}
.danalyx-carousel.dxa-pic-flip.dxa-pic-anim .danalyx-viewport{
	transform: rotateY(90deg);
}



















/* ---- Caption visibility rules ---- */

/* Default: always visible */
.danalyx-picture-card[data-caption-vis="always"] .danalyx-picture-caption{
	max-height: none;
	opacity: 1;
	transform: none;
}

/* BELOW + HOVER: hide caption until hover, then slide out */
.danalyx-picture-card[data-caption-mode="below"][data-caption-vis="hover"] .danalyx-picture-caption{
	max-height: 0;
	opacity: 0;
	transform: translateY(-10px);
	overflow: hidden;
	pointer-events: none;
	transition: max-height .25s ease, opacity .25s ease, transform .25s ease;
}

.danalyx-picture-card[data-caption-mode="below"][data-caption-vis="hover"]:hover .danalyx-picture-caption{
	max-height: 240px; /* enough room */
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}












/* Fade feeling: track opacity during movement (simple) */
.danalyx-carousel[data-pic-transition="fade"] .danalyx-track{
	transition: transform 350ms cubic-bezier(0.22,0.61,0.36,1), opacity 350ms ease;
}

/* Optional: set opacity lower while dragging */
.danalyx-carousel[data-pic-transition="fade"].is-dragging .danalyx-track{
	opacity: .85;
}
