.seg-single-gallery,
.seg-card-gallery {
	box-sizing: border-box;
	position: relative;
}

.seg-single-gallery *,
.seg-card-gallery * {
	box-sizing: border-box;
}

.seg-single-gallery {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 18px;
	align-items: start;
	width: 100%;
	margin-bottom: 30px;
}

.seg-single-gallery.seg-thumbs-bottom {
	grid-template-columns: minmax(0, 1fr);
}

.seg-thumbnails {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-height: min(78vh, 900px);
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}

.seg-thumbs-left .seg-thumbnails {
	height: var(--seg-stage-height, min(84vh, 1100px));
	max-height: var(--seg-stage-height, min(84vh, 1100px));
}

.seg-thumbs-bottom .seg-thumbnails {
	grid-row: 2;
	flex-direction: row;
	max-height: none;
	overflow-x: auto;
	overflow-y: hidden;
}

.seg-thumbnail {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 3 / 4;
	padding: 0;
	border: 2px solid transparent;
	background: var(--seg-gallery-bg, #f7f7f7);
	cursor: pointer;
	overflow: hidden;
	transition: border-color .18s ease, opacity .18s ease;
}

.seg-thumbs-bottom .seg-thumbnail {
	width: 88px;
}

.seg-thumbnail:hover {
	opacity: .82;
}

.seg-thumbnail.is-active {
	border-color: #111;
}

.seg-thumbnail img,
.seg-thumbnail canvas {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: contain !important;
	object-position: center !important;
}

/* Protección para plantillas antiguas retenidas por OPcache o markup reinsertado por el tema. */
.seg-thumbnail video,
.seg-thumbnail .seg-thumb-video {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.seg-thumbnail video::-webkit-media-controls,
.seg-thumbnail video::-webkit-media-controls-enclosure,
.seg-thumbnail video::-webkit-media-controls-panel,
.seg-thumbnail video::-webkit-media-controls-start-playback-button {
	display: none !important;
	-webkit-appearance: none !important;
}

.seg-thumb-video-frame {
	position: absolute;
	inset: 0;
	display: block;
	background: #111;
}

.seg-thumb-canvas {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: #111;
}

.seg-video-first-frame {
	position: absolute !important;
	inset: 0;
	z-index: 1;
	background: #111;
}

.seg-stage {
	position: relative;
	min-width: 0;
	background: var(--seg-gallery-bg, #f7f7f7);
	overflow: hidden;
	touch-action: pan-y;
}

.seg-stock-badge {
	position: absolute;
	z-index: 8;
	top: 24px;
	left: 24px;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 9px 18px;
	border-radius: 3px;
	background: #111;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	pointer-events: none;
}

.seg-slides,
.seg-slide {
	width: 100%;
}

.seg-slide {
	display: none;
	place-items: center;
	min-height: 320px;
}

.seg-slide.is-active {
	display: grid;
}

.seg-slide[data-media-type="image"] {
	overflow: hidden;
}

.seg-main-image,
.seg-main-video {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: min(84vh, 1100px) !important;
	margin: 0 auto !important;
	object-fit: contain !important;
	object-position: center !important;
}

.seg-main-image {
	cursor: zoom-in;
	transform: scale(1);
	transition: transform .18s ease;
	will-change: transform;
}

.seg-slide.is-zooming .seg-main-image {
	cursor: zoom-out;
	transform: scale(1.75);
	transition-duration: .08s;
}

.seg-main-video {
	background: #111;
	aspect-ratio: 3 / 4;
	pointer-events: none;
}

.seg-main-video::-webkit-media-controls,
.seg-main-video::-webkit-media-controls-enclosure,
.seg-main-video::-webkit-media-controls-panel,
.seg-main-video::-webkit-media-controls-start-playback-button {
	display: none !important;
	-webkit-appearance: none;
}

.seg-video-embed {
	border: 0;
}

.seg-video-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: #e6e6e6;
}

.seg-play-badge {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: grid;
	place-items: center;
	z-index: 3;
	width: 48px;
	height: 48px;
	padding: 0;
	background: transparent;
	color: transparent;
	font-size: 0;
	box-shadow: none;
	pointer-events: none;
}

.seg-play-badge::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	margin-left: 5px;
	border-top: 16px solid transparent;
	border-bottom: 16px solid transparent;
	border-left: 25px solid #fff;
	filter: drop-shadow(0 1px 3px rgba(0,0,0,.55));
}

.seg-arrow,
.seg-expand {
	position: absolute;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.92);
	color: #111;
	box-shadow: 0 2px 16px rgba(0,0,0,.06);
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, opacity .18s ease;
}

.seg-arrow:hover,
.seg-expand:hover {
	transform: scale(1.06);
	background: #fff;
}

.seg-arrow svg,
.seg-expand svg {
	width: 25px;
	height: 25px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.seg-stage > .seg-prev {
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.seg-stage > .seg-next {
	right: 24px;
	top: 50%;
	transform: translateY(-50%);
}

.seg-stage > .seg-prev:hover,
.seg-stage > .seg-next:hover {
	transform: translateY(-50%) scale(1.06);
}

.seg-expand {
	right: 24px;
	top: 24px;
}

/* Product cards */
.seg-card-gallery {
	width: 100%;
	overflow: hidden;
	background: #f7f7f7;
}

.seg-card-slides {
	display: grid;
}

.seg-card-slide {
	grid-area: 1 / 1;
	opacity: 0 !important;
	visibility: hidden !important;
	transition: opacity .28s ease;
}

.seg-card-slide.is-active {
	opacity: 1 !important;
	visibility: visible !important;
}

.seg-card-image {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	object-fit: contain !important;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}

.seg-theme-hover-disabled,
a > .seg-card-gallery ~ img,
a:has(> .seg-card-gallery) > img:not(.seg-card-image),
a:has(> .seg-card-gallery) > picture:not(:has(.seg-card-gallery)) {
	display: none !important;
}

.product-thumbnail:hover .seg-card-gallery,
.product-image:hover .seg-card-gallery,
.product-inner:hover .seg-card-gallery,
li.product:hover .seg-card-gallery {
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
}

.seg-card-video {
	aspect-ratio: 3 / 4;
	background: #111;
	pointer-events: none;
}

.seg-card-video-shell {
	position: relative;
	aspect-ratio: 3 / 4;
	background: #111;
}

.seg-card-video-shell .seg-card-video,
.seg-card-video-shell .seg-card-video-poster {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
}

.seg-card-video-poster {
	z-index: 1;
	background: #f7f7f7;
	transition: opacity .2s ease;
}

.seg-card-video-shell.is-playing .seg-card-video-poster {
	opacity: 0;
	pointer-events: none;
}

.seg-card-gallery.is-video-loading .seg-card-video {
	opacity: .001;
}

.seg-card-gallery.is-video-loading::before {
	content: '';
	position: absolute;
	z-index: 2;
	inset: 0;
	background: #f7f7f7;
}

.seg-card-gallery .seg-arrow {
	top: 50%;
	width: 42px;
	height: 42px;
	transform: translateY(-50%);
	opacity: 0 !important;
	visibility: hidden;
	pointer-events: none;
	box-shadow: none;
}

.seg-card-gallery:hover .seg-arrow,
.seg-card-gallery:focus-within .seg-arrow,
.woocommerce ul.products li.product:hover .seg-card-gallery .seg-arrow,
.woocommerce-page ul.products li.product:hover .seg-card-gallery .seg-arrow {
	opacity: 1 !important;
	visibility: visible;
	pointer-events: auto;
}

.seg-card-gallery .seg-arrow:hover {
	transform: translateY(-50%) scale(1.05);
}

.seg-card-gallery .seg-prev { left: 12px; }
.seg-card-gallery .seg-next { right: 12px; }

.seg-card-dots {
	position: absolute;
	z-index: 4;
	left: 50%;
	bottom: 10px;
	transform: translateX(-50%);
	display: flex;
	gap: 5px;
}

.seg-card-dots span {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: rgba(0,0,0,.28);
}

.seg-card-dots span.is-active { background: #111; }

/* Full-screen viewer */
.seg-lightbox {
	position: fixed;
	z-index: 999999;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 70px;
	background: rgba(255,255,255,.98);
}

.seg-lightbox[hidden] { display: none !important; }

.seg-lightbox-image {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 100px);
	width: auto;
	height: auto;
	object-fit: contain;
}

.seg-lightbox-close {
	position: fixed;
	right: 24px;
	top: 20px;
	width: 48px;
	height: 48px;
	border: 0;
	background: transparent;
	font-size: 34px;
	font-weight: 300;
	line-height: 1;
	cursor: pointer;
}

body.seg-lightbox-open { overflow: hidden; }

@media (max-width: 991px) {
	.seg-single-gallery,
	.seg-single-gallery.seg-thumbs-bottom {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.seg-single-gallery .seg-thumbnails {
		grid-row: 2;
		flex-direction: row;
		max-height: none;
		overflow-x: auto;
		overflow-y: hidden;
		height: auto;
		max-height: none;
	}

	.seg-single-gallery .seg-thumbnail { width: 78px; }
	.seg-stage > .seg-prev { left: 14px; }
	.seg-stage > .seg-next { right: 14px; }
	.seg-expand { top: 14px; right: 14px; }
	.seg-main-image { cursor: default; }
}

@media (max-width: 600px) {
	.seg-arrow,
	.seg-expand { width: 46px; height: 46px; }
	.seg-main-image,
	.seg-main-video { max-height: none !important; }
	.seg-lightbox { padding: 55px 12px 20px; }
	.seg-card-gallery .seg-arrow { opacity: .85 !important; visibility: visible; pointer-events: auto; width: 36px; height: 36px; }
	.seg-stock-badge { top: 14px; left: 14px; min-height: 38px; padding: 8px 14px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.seg-card-slide,
	.seg-arrow,
	.seg-expand { transition: none; }
}
