/*AMAZON GALLERY TEST*/
/*
 * Allping: limited desktop gallery + large media modal (test version).
 * The production gallery remains untouched until this prototype is approved.
 */

body.allping-limited-gallery-test-lock {
	overflow: hidden;
}

@media (min-width: 768px) {
	/* Hide only the native thumbnail rail visually. The native slides and
	 * thumbnail click behavior remain available to the test JavaScript. */
	.allping-product-grid > .woocommerce-product-gallery.allping-limited-gallery-test-active > .flex-control-thumbs {
		display: none !important;
	}

	.allping-limited-gallery-test-rail {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
		margin: 0;
		padding: 0;
		box-sizing: border-box;
	}

	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:hover,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:focus,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:focus-visible,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:active {
		position: relative;
		display: block;
		width: 100%;
		aspect-ratio: 1 / 1;
		min-width: 0;
		margin: 0;
		padding: 0;
		border: 2px solid transparent !important;
		border-radius: 4px;
		box-sizing: border-box;
		background: transparent !important;
		background-color: transparent !important;
		color: inherit !important;
		box-shadow: inset 0 0 0 1px #d1d5db !important;
		filter: none !important;
		transform: none !important;
		cursor: pointer;
		overflow: hidden;
		transition: border-color 150ms ease, box-shadow 150ms ease;
	}

	.allping-limited-gallery-test-thumb img {
		display: block;
		width: 100%;
		height: 100%;
		border: 0;
		border-radius: 3px;
		background: transparent;
		object-fit: contain;
		object-position: center;
	}

	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:hover,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:focus-visible,
	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb.is-active {
		border: 2px solid #0064d2 !important;
		background: transparent !important;
		background-color: transparent !important;
		color: inherit !important;
		box-shadow: none !important;
		filter: none !important;
		transform: none !important;
		outline: none !important;
	}

	.allping-product-grid > .woocommerce-product-gallery > .allping-limited-gallery-test-rail > .allping-limited-gallery-test-thumb:active {
		transform: none !important;
	}

	.allping-limited-gallery-test-thumb.is-action::after {
		display: none;
	}

	.allping-limited-gallery-test-overlay {
		position: absolute;
		right: 4px;
		bottom: 4px;
		z-index: 1;
		padding: 3px 5px;
		border-radius: 4px;
		background: rgba(255, 255, 255, 0.92);
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
		color: #0064d2;
		font-size: clamp(13px, 1.7vw, 20px);
		font-weight: 800;
		line-height: 1;
		pointer-events: none;
	}

	.allping-limited-gallery-test-caption {
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
		width: 100%;
		max-width: none;
		box-sizing: border-box;
		padding: 2px 3px;
		border-radius: 0;
		background: rgba(255, 255, 255, 0.92);
		box-shadow: 0 1px 3px rgba(15, 23, 42, 0.14);
		overflow: hidden;
		color: #0064d2;
		font-size: clamp(10px, 1.1vw, 12px);
		font-weight: 700;
		line-height: 1;
		text-align: center;
		text-overflow: ellipsis;
		white-space: nowrap;
		pointer-events: none;
	}

	/* Large semi-fullscreen product media panel. */
	.allping-limited-gallery-test-modal[hidden] {
		display: none !important;
	}

	.allping-limited-gallery-test-modal {
		position: fixed;
		inset: 0;
		z-index: 100000;
		display: grid;
		place-items: center;
		padding: 24px;
		background: rgba(15, 23, 42, 0.72);
	}

	.allping-limited-gallery-test-dialog {
		display: grid;
		grid-template-rows: auto minmax(0, 1fr);
		width: min(1320px, calc(100vw - 48px));
		height: min(760px, calc(100vh - 48px));
		max-height: calc(100vh - 48px);
		border-radius: 8px;
		background: #ffffff;
		box-shadow: 0 24px 80px rgba(15, 23, 42, 0.34);
		overflow: hidden;
	}

	.allping-limited-gallery-test-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		min-height: 58px;
		padding: 12px 18px;
		border-bottom: 1px solid #e5e7eb;
		box-sizing: border-box;
	}

	.allping-limited-gallery-test-header h2 {
		margin: 0;
		color: #111827;
		font-size: 18px;
		font-weight: 700;
		line-height: 1.2;
	}

	.allping-limited-gallery-test-close {
		width: 36px;
		height: 36px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: transparent;
		color: #6b7280;
		font-size: 32px;
		font-weight: 300;
		line-height: 1;
		cursor: pointer;
	}

	.allping-limited-gallery-test-close:hover,
	.allping-limited-gallery-test-close:focus-visible {
		background: #f1f5f9;
		color: #111827;
		outline: none;
	}

	.allping-limited-gallery-test-body {
		display: grid;
		grid-template-columns: 300px minmax(0, 1fr);
		min-height: 0;
	}

	.allping-limited-gallery-test-modal-rail {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 10px;
		min-height: 0;
		padding: 16px;
		border-right: 1px solid #e5e7eb;
		background: #f8fafc;
		overflow-y: auto;
	}

	.allping-limited-gallery-test-modal-section {
		grid-column: 1 / -1;
		margin: 0;
		padding: 0 0 5px;
		border-bottom: 1px solid #d1d5db;
		color: #334155;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.2;
	}

	.allping-limited-gallery-test-modal-section:not(:first-child) {
		margin-top: 6px;
		padding-top: 8px;
		border-top: 1px solid #e5e7eb;
	}

	.allping-limited-gallery-test-modal-thumb {
		position: relative;
		width: 100%;
		aspect-ratio: 1 / 1;
		margin: 0;
		padding: 3px;
		border: 1px solid #d1d5db;
		border-radius: 4px;
		background: #ffffff;
		cursor: pointer;
		box-sizing: border-box;
	}

	.allping-limited-gallery-test-modal-thumb img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	.allping-limited-gallery-test-modal-thumb-play {
		position: absolute;
		top: 50%;
		left: 50%;
		display: grid;
		place-items: center;
		width: 30px;
		height: 30px;
		transform: translate(-50%, -50%);
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.92);
		box-shadow: 0 1px 4px rgba(15, 23, 42, 0.2);
		color: #0064d2;
		font-size: 13px;
		line-height: 1;
		pointer-events: none;
	}

	.allping-limited-gallery-test-modal-thumb:hover,
	.allping-limited-gallery-test-modal-thumb:focus-visible,
	.allping-limited-gallery-test-modal-thumb.is-active {
		border: 2px solid #0064d2;
		outline: none;
	}

	.allping-limited-gallery-test-stage {
		position: relative;
		display: grid;
		place-items: center;
		min-width: 0;
		min-height: 0;
		padding: 28px 70px;
		background: #111827;
	}

	.allping-limited-gallery-test-media {
		display: grid;
		place-items: center;
		width: min(100%, 72vh);
		height: min(100%, 72vh);
		aspect-ratio: 1 / 1;
		min-width: 0;
		min-height: 0;
	}

	.allping-limited-gallery-test-main-image,
	.allping-limited-gallery-test-video-poster,
	.allping-limited-gallery-test-media iframe {
		display: block;
		width: 100%;
		height: 100%;
		max-width: 100%;
		max-height: 100%;
		border: 0;
		object-fit: contain;
	}

	.allping-limited-gallery-test-video-poster {
		position: relative;
		margin: 0;
		padding: 0;
		background: transparent;
		cursor: pointer;
	}

	.allping-limited-gallery-test-video-poster img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
	}

	.allping-limited-gallery-test-play {
		position: absolute;
		top: 50%;
		left: 50%;
		display: grid;
		place-items: center;
		width: 70px;
		height: 50px;
		transform: translate(-50%, -50%);
		border-radius: 12px;
		background: #ff0033;
		color: #ffffff;
		font-size: 24px;
		line-height: 1;
		pointer-events: none;
	}

	.allping-limited-gallery-test-arrow {
		position: absolute;
		top: 50%;
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		transform: translateY(-50%);
		border: 1px solid #d1d5db !important;
		border-radius: 999px;
		background: rgba(255, 255, 255, 0.94) !important;
		background-color: rgba(255, 255, 255, 0.94) !important;
		box-shadow: 0 2px 8px rgba(15, 23, 42, 0.14) !important;
		color: #64748b !important;
		font-size: 30px;
		font-weight: 300;
		line-height: 1;
		cursor: pointer;
		appearance: none;
	}

	.allping-limited-gallery-test-arrow:hover,
	.allping-limited-gallery-test-arrow:focus-visible {
		background: #ffffff !important;
		background-color: #ffffff !important;
		border-color: #cbd5e1 !important;
		box-shadow: 0 2px 8px rgba(15, 23, 42, 0.18) !important;
		color: #0064d2 !important;
		outline: none !important;
	}

	.allping-limited-gallery-test-arrow:disabled {
		cursor: default;
		opacity: 0.35;
	}

	.allping-limited-gallery-test-arrow.is-previous {
		left: 16px;
	}

	.allping-limited-gallery-test-arrow.is-next {
		right: 16px;
	}

	.allping-limited-gallery-test-counter {
		position: absolute;
		bottom: 12px;
		left: 50%;
		transform: translateX(-50%);
		padding: 5px 10px;
		border-radius: 999px;
		background: rgba(15, 23, 42, 0.72);
		color: #ffffff;
		font-size: 13px;
		line-height: 1;
	}
}

@media (max-width: 767px) {
	/* This test is desktop-only for now; the existing mobile gallery remains
	 * completely unchanged. */
	.allping-limited-gallery-test-rail,
	.allping-limited-gallery-test-modal {
		display: none !important;
	}
}













/*GRADIENTS*/




/*logo CLIENTS PERSONALIZATION*/
/* ALLPING - Logo carousel */

/* Desktop logo treatment */
.sp-logo-carousel .sp-lc-image {
  opacity: 1 !important;
  filter: none !important;
  transform: scale(0.86);
  transform-origin: center;
  transition: transform 0.45s ease;
}

.sp-logo-carousel .swiper-slide:hover .sp-lc-image,
.sp-logo-carousel .swiper-slide:focus-within .sp-lc-image {
  opacity: 1 !important;
  filter: none !important;
  transform: scale(0.9);
}

/* Continuous movement */
.sp-logo-carousel .allping-continuous-track {
  transition: none !important;
  will-change: transform;
  animation-duration: var(--allping-duration, 115s);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
  animation-play-state: running !important;
}

.sp-logo-carousel[dir="ltr"] .allping-continuous-track {
  animation-name: allping-row-left;
}

.sp-logo-carousel[dir="rtl"] .allping-continuous-track {
  animation-name: allping-row-right;
}

@keyframes allping-row-left {
  from {
    transform: translate3d(var(--allping-start-x), 0, 0);
  }

  to {
    transform: translate3d(
      calc(var(--allping-start-x) - var(--allping-distance)),
      0,
      0
    );
  }
}

@keyframes allping-row-right {
  from {
    transform: translate3d(var(--allping-start-x), 0, 0);
  }

  to {
    transform: translate3d(
      calc(var(--allping-start-x) + var(--allping-distance)),
      0,
      0
    );
  }
}

/* Bring the second desktop row closer to the first */
.kb-row-layout-id2780_4fd8fe-35
> .kt-row-column-wrap
> .kadence-column2780_1992c1-7f {
  position: relative;
  top: -24px !important;
}

/* Mobile: three larger logos per view with a small horizontal gap */
@media (max-width: 767px) {
  .sp-logo-carousel .swiper-slide {
    width: calc((100% - 36px) / 3) !important;
    flex: 0 0 calc((100% - 36px) / 3) !important;
    margin-left: 6px !important;
    margin-right: 6px !important;
  }

  .sp-logo-carousel .sp-lc-logo {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .sp-logo-carousel .sp-lc-image {
    width: 100% !important;
    max-width: 100% !important;
    opacity: 1 !important;
    transform: scale(1) !important;
  }

  .kb-row-layout-id2780_4fd8fe-35
  > .kt-row-column-wrap
  > .kadence-column2780_1992c1-7f {
    top: -16px !important;
  }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .sp-logo-carousel .allping-continuous-track {
    animation: none !important;
    transform: translate3d(var(--allping-start-x), 0, 0) !important;
  }
}
