.tab-panel {
	position: relative;
}

.tab-panel .background {
	position: absolute;
	top: 0;
	width: 100%;
	height: calc(465px + (640 - 465) * ((100vw - 320px) / (640 - 320)));
	background-size: cover;
	pointer-events: none;
}

.tab-panel .background::after {
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: rgba(0,0,0,0.4);
}

.tab-panel .panel-info {
	position: relative;
	padding: 45px 50px 0;
    margin-bottom: var(--space-12);
}

.tab-panel .panel-info .panel-title {
	position: relative;
	text-align: center;
	z-index: 1;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 32px;
	line-height: 40px;
	color: #FFF;
	max-width: 270px;
	margin: 0 auto 18px;
}

.tab-panel .tab-container {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.tab-panel .tab-container .tab-select {
	width: 275px;
	height: 40px;
	text-indent: 15px;
    text-transform: uppercase;
	font-family: var(--font-body);
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-bottom: var(--space-5);
}

.tab-panel .tab-container .tabs {
	display: none;
}
.tab-panel .tab-container .tab-label {
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
}

.tab-panel .tab-container .tab-label.active {
	text-decoration: underline;
}

.tab-panel .tab-container .view-all {
	display: flex;
	align-items: center;
	position: relative;
	color: white;
	font-size: 18px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-family: var(--font-body);
	font-weight: 600;
	padding-right: 20px;
}

.tab-panel .tab-container .view-all .btn-accent {
    width: 12px;
    height: 1px;
    position: absolute;
	right: 0;
    background: white;
    transition: width 200ms ease, right 200ms ease;
    margin-left: 6px;
}

.tab-panel .tab-container .view-all .btn-accent::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    right: -6px;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--white);
    border-radius: var(--rounded-circle);
    opacity: 0;
    transition: opacity 200ms ease;
}

.tab-panel .panel-slides {
	position: relative;
	width: 100%;
	display: block;
}

.tab-panel .panel-slides > div.contentRender.active { display: block; }
.tab-panel .panel-slides > div.contentRender:not(.active) { display: none; }


@media (min-width: 40em) {
	.tab-panel .background {
		height: calc(400px + (505 - 400) * ((100vw - 640px) / (1024 - 640)));
	}
	.tab-panel .panel-info .panel-title {
		max-width: 500px;
	}

	.tab-panel .tab-container .tab-select {
		display: none;
	}
	.tab-panel .tab-container .tabs {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		margin-bottom: var(--space-4);
		position: relative;
		z-index: 2;
		background-color: var(--white);
		padding: 0 13px;
	}

	.tab-panel .tab-container .tab-label {
		font-size: 18px;
		font-weight: 600;
		line-height: 1.2em;
		color: var(--dark-gray);
		transition: color .3s ease, border-color .3s ease;
		text-align: center;
		text-transform: uppercase;
		background-color: transparent;
		margin-right: 4px;
		padding: 10px 12px;
		cursor: pointer;
	}
	.tab-panel .labels .tab-label.active::after { content: none; }
}

@media (min-width: 64em) {
	.tab-panel {
		margin-bottom: var(--space-32);
	}

	.tab-panel::before {
		top: 22px;	
		width: calc(220px + (370 - 220) * ((100vw - 1025px) / (1440 - 1025)));
		aspect-ratio: 380 / 833;
		height: auto;
	}

	.tab-panel .background {
		height: calc(560px + (620 - 560) * ((100vw - 1025px) / (1440 - 1025)));
		background-size: cover;
		background-attachment: fixed;
	}

	.tab-panel .panel-info {
		padding: 120px 35px 0;
		width: calc(100% - 45px);
		max-width: 1309px;
		margin: 0 auto var(--space-1);
		min-height: 365px;
		z-index: 2;
	}

	.tab-panel .tab-container {
		display: flex;
		flex-direction: row;
		justify-content: center;
		gap: 30px;
		margin-bottom: var(--space-16);
	}

	.tab-panel .tab-container .tabs {
		margin-bottom: 0;
	}

	.tab-panel .panel-info .panel-title {
		font-size: 65px;
		line-height: 1.2em;
		max-width: 800px;
		margin-bottom: var(--space-12);
	}

	.tab-panel .panel-slides {
		padding: 0 15px 0;
	}

	@media (hover : hover) {
		.tab-panel .tab-container .tab-label:not(.active):hover {
			text-decoration: underline;
		}

		.tab-panel .tab-container .view-all:hover .btn-accent {
			width: 24px;
			right: -12px;
		}
		
		.tab-panel .tab-container .view-all:hover .btn-accent::after {
			opacity: 1;
		}
	}
}

@media (min-width: 1440px) {
	.tab-panel .background {
		max-height: 620px;
	}
}