/**
 * SE Tabs — vertical tab buttons + right image panel.
 */

.se-tabs {
	--se-tabs-accent: #ccff31;
	--se-tabs-nav-ratio: 50%;
	box-sizing: border-box;
}

.se-tabs *,
.se-tabs *::before,
.se-tabs *::after {
	box-sizing: border-box;
}

.se-tabs__layout {
	display: grid;
	grid-template-columns: minmax(0, var(--se-tabs-nav-ratio)) minmax(0, 1fr);
	align-items: stretch;
	gap: 20px;
}

.se-tabs__nav {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.se-tabs__tab {
	display: block;
	width: 100%;
	margin: 0;
	padding: 23px 27px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 13px;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.25s ease, color 0.25s ease;
	appearance: none;
	-webkit-appearance: none;
}

.se-tabs__tab:hover:not(.is-active),
.se-tabs__tab:focus:not(.is-active) {
	background: transparent;
}

.se-tabs__tab:focus-visible {
	outline: 2px solid var(--se-tabs-accent);
	outline-offset: 2px;
}

.se-tabs__tab-inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.se-tabs__tab-title {
	display: block;
	font-size: clamp(15px, 1.05vw, 18px);
	font-weight: 500;
	line-height: 1.35;
	transition: color 0.25s ease;
}

.se-tabs__tab-desc {
	display: block;
	font-size: clamp(13px, 0.9vw, 15px);
	line-height: 1.45;
	transition: color 0.25s ease;
}

.se-tabs__panel {
	position: relative;
	min-height: 671px;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	background:
		radial-gradient(
			ellipse 120% 90% at 30% 20%,
			rgba(28, 55, 38, 1) 0%,
			rgba(5, 18, 10, 1) 100%
		),
		radial-gradient(
			ellipse 80% 60% at 70% 80%,
			rgba(16, 36, 24, 0.5) 0%,
			rgba(7, 5, 14, 0.5) 100%
		);
}

.se-tabs__visual {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.se-tabs__visual.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.se-tabs__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.se-tabs__image-placeholder {
	width: 100%;
	height: 100%;
	min-height: inherit;
	background: rgba(255, 255, 255, 0.03);
}

@media (max-width: 1024px) {
	.se-tabs__layout {
		grid-template-columns: 1fr;
	}

	.se-tabs__panel {
		min-height: 420px;
	}
}

@media (max-width: 767px) {
	.se-tabs__tab {
		padding: 18px 20px;
	}

	.se-tabs__panel {
		min-height: 320px;
	}
}
