/* Tabs Horizontales — contenedor */
.rb_horizontal_tabs {
	--rb-tabs-gap: 16px;
	--rb-bar-width: 94px;
	--rb-radius: 4px;
	--rb-speed: 0.5s;

	display: flex;
	width: 100%;
	max-width: 100%;
	min-height: 520px;
}

/* Mayor especificidad para ganarle al layout flex por defecto de Divi (columna). */
.et_pb_module.rb_horizontal_tabs {
	flex-direction: row;
	column-gap: var(--rb-tabs-gap);
	row-gap: var(--rb-tabs-gap);
}

/* Tab (hijo) */
.rb_horizontal_tab {
	position: relative;
	align-self: stretch;
	flex: 0 0 var(--rb-bar-width);
	min-width: 0;
	overflow: hidden;
	border-radius: var(--rb-radius);
	background-size: cover;
	background-position: center;
	transition: flex-basis var(--rb-speed) ease, flex-grow var(--rb-speed) ease;
}

.rb_horizontal_tab.is-active {
	flex: 1 1 0;
}

/* Antes de que corra el JS, la primera pestaña se muestra abierta. */
.rb_horizontal_tabs:not(:has(.rb_horizontal_tab.is-active)) > .rb_horizontal_tab:first-of-type {
	flex: 1 1 0;
}

/* Barra de la pestaña cerrada */
.rb_horizontal_tab__bar {
	/* Baja especificidad a propósito: el fondo elegido en el builder debe poder pisarlo. */
	background-color: transparent;
}

.rb_horizontal_tab .rb_horizontal_tab__bar {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 48px 0 56px;
	border: 0;
	border-radius: 0;
	color: #fff;
	cursor: pointer;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.rb_horizontal_tab .rb_horizontal_tab__bar:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -4px;
}

.rb_horizontal_tab .rb_horizontal_tab__label {
	display: block;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
}

/* Icono (se usa en la barra y en el panel) */
.rb_horizontal_tab .rb_horizontal_tab__icon.et-pb-icon {
	display: block;
	font-size: 48px;
	line-height: 1;
	color: #fff;
}

/* Icono subido (imagen o SVG): el ancho lo define el ajuste de tamaño del icono. */
.rb_horizontal_tab .rb_horizontal_tab__icon--image {
	display: block;
	width: 48px;
	max-width: none;
	height: auto;
}

/* Panel de la pestaña abierta */
.rb_horizontal_tab .rb_horizontal_tab__panel {
	position: absolute;
	inset: 0;
	z-index: 1;
	min-width: 420px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	cursor: pointer;
}

.rb_horizontal_tab .rb_horizontal_tab__panel .rb_horizontal_tab__icon {
	position: absolute;
	top: 48px;
	left: 64px;
}

.rb_horizontal_tab .rb_horizontal_tab__text {
	position: absolute;
	left: 80px;
	right: 80px;
	bottom: 84px;
	top: 28%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 0 0 48px;
	border-left: 8px solid #fff;
	color: #fff;
}

.rb_horizontal_tab .rb_horizontal_tab__title {
	margin: 0;
	padding: 0;
	font-size: 44px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: #fff;
}

.rb_horizontal_tab .rb_horizontal_tab__content {
	margin: 0;
	font-size: 28px;
	line-height: 1.1;
	color: #fff;
}

.rb_horizontal_tab .rb_horizontal_tab__content p {
	margin: 0;
	padding: 0;
	color: inherit;
}

.rb_horizontal_tab .rb_horizontal_tab__chevron {
	position: absolute;
	top: 50%;
	right: 32px;
	width: 10px;
	height: 10px;
	margin-top: -5px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
}

/* Estado activo */
.rb_horizontal_tab.is-active .rb_horizontal_tab__bar,
.rb_horizontal_tabs:not(:has(.rb_horizontal_tab.is-active)) > .rb_horizontal_tab:first-of-type .rb_horizontal_tab__bar {
	opacity: 0;
	pointer-events: none;
}

.rb_horizontal_tab.is-active .rb_horizontal_tab__panel,
.rb_horizontal_tabs:not(:has(.rb_horizontal_tab.is-active)) > .rb_horizontal_tab:first-of-type .rb_horizontal_tab__panel {
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0.15s;
}

/* Mobile: acordeón vertical */
@media (max-width: 767px) {
	.rb_horizontal_tabs {
		min-height: 0;
	}

	.et_pb_module.rb_horizontal_tabs {
		flex-direction: column;
	}

	.rb_horizontal_tab {
		flex: 0 0 72px;
		transition: flex-basis var(--rb-speed) ease;
	}

	.rb_horizontal_tab.is-active,
	.rb_horizontal_tabs:not(:has(.rb_horizontal_tab.is-active)) > .rb_horizontal_tab:first-of-type {
		flex: 0 0 440px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__bar {
		flex-direction: row;
		justify-content: flex-start;
		gap: 20px;
		padding: 0 24px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__bar .rb_horizontal_tab__icon.et-pb-icon {
		font-size: 32px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__bar .rb_horizontal_tab__icon--image {
		width: 32px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__label {
		writing-mode: horizontal-tb;
		transform: none;
		font-size: 20px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__panel {
		min-width: 0;
	}

	.rb_horizontal_tab .rb_horizontal_tab__panel .rb_horizontal_tab__icon {
		top: 24px;
		left: 24px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__text {
		left: 24px;
		right: 24px;
		bottom: 32px;
		top: 96px;
		padding-left: 20px;
		border-left-width: 6px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__title {
		font-size: 30px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__content {
		font-size: 20px;
	}

	.rb_horizontal_tab .rb_horizontal_tab__chevron {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rb_horizontal_tab,
	.rb_horizontal_tab .rb_horizontal_tab__bar,
	.rb_horizontal_tab .rb_horizontal_tab__panel {
		transition: none;
	}
}
