/* Carrusel de portada (sustituye a Revolution Slider). Mismas medidas y flechas "hades". */

.og-carrusel {
	position: relative;
	width: 100%;
	aspect-ratio: 2 / 1;          /* rejilla original 1200 x 600 */
	max-height: 600px;
	margin: 0 auto;
	overflow: hidden;
	background: #E9E9E9;
	-webkit-user-select: none;
	user-select: none;
	touch-action: pan-y;
}

/* Dentro de una columna de WPBakery: ocupar todo el ancho, sin el margen interior de la columna
   (el JS ajusta el valor exacto; esto evita el salto inicial). */
.vc_column_container .og-carrusel {
	width: calc(100% + 20px);
	margin-left: -10px;
	margin-right: -10px;
}

.og-carrusel__stage,
.og-carrusel__slide,
.og-carrusel__fx {
	position: absolute;
	inset: 0;
}

.og-carrusel__slide {
	visibility: hidden;
	z-index: 1;
}

.og-carrusel__slide.is-active {
	visibility: visible;
	z-index: 2;
}

.og-carrusel__slide.is-incoming {
	visibility: visible;
	z-index: 3;
}

.og-carrusel__slide img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center center;
}

/* Capa temporal para transiciones por franjas / cajas */
.og-carrusel__fx {
	z-index: 4;
	pointer-events: none;
}

.og-carrusel__piece {
	position: absolute;
	overflow: hidden;
}

.og-carrusel__piece > div {
	position: absolute;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

/* ---------- Flechas estilo "hades" ---------- */

.og-carrusel__arrow {
	position: absolute;
	top: 50%;
	z-index: 100;
	width: 100px;
	height: 100px;
	margin: -50px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.15);
	color: #fff;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
	-webkit-appearance: none;
	appearance: none;
}

.og-carrusel__arrow--prev { left: 20px; }
.og-carrusel__arrow--next { right: 20px; }

.og-carrusel.show-arrows .og-carrusel__arrow {
	opacity: 1;
	visibility: visible;
}

.og-carrusel__arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 30px 30px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M19 5 9 15l10 10' fill='none' stroke='%23fff' stroke-width='2.5'/%3E%3C/svg%3E");
	transition: background-color 0.3s;
}

.og-carrusel__arrow--next::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M11 5l10 10-10 10' fill='none' stroke='%23fff' stroke-width='2.5'/%3E%3C/svg%3E");
}

.og-carrusel__arrow:hover::before,
.og-carrusel__arrow:focus-visible::before {
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M19 5 9 15l10 10' fill='none' stroke='%23aaa' stroke-width='2.5'/%3E%3C/svg%3E");
}

.og-carrusel__arrow--next:hover::before,
.og-carrusel__arrow--next:focus-visible::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M11 5l10 10-10 10' fill='none' stroke='%23aaa' stroke-width='2.5'/%3E%3C/svg%3E");
}

.og-carrusel__arrow:focus { outline: none; }
.og-carrusel__arrow:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Miniatura que se despliega junto a la flecha al pasar el ratón */
.og-carrusel__thumb {
	position: absolute;
	top: 0;
	left: 100%;
	width: 100px;
	height: 100px;
	background: #888 center / cover no-repeat;
	opacity: 0;
	transform: rotateY(-90deg);
	transform-origin: 0% 50%;
	transition: all 0.3s;
	pointer-events: none;
}

.og-carrusel__arrow--next .og-carrusel__thumb {
	left: auto;
	right: 100%;
	transform: rotateY(90deg);
	transform-origin: 100% 50%;
}

.og-carrusel__arrow:hover .og-carrusel__thumb {
	opacity: 1;
	transform: rotateY(0deg);
}

@media (prefers-reduced-motion: reduce) {
	.og-carrusel__arrow,
	.og-carrusel__thumb { transition: none; }
}
