/* ========================================
   TABS SECTION - BEM Methodology
   ======================================== */

/* Block: tabs-section */
.tabs-section {
    position: relative;
    padding: 100px 5%;
    color: var(--color-white);
    overflow: hidden;
    --tabs-top-fade-height: 250px;
    --tabs-top-fade-gradient: linear-gradient(180deg, rgb(255 255 255) 0%, rgba(255, 255, 255, 0) 100%);
}

.tabs-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--tabs-top-fade-height);
    background: var(--tabs-top-fade-gradient);
    pointer-events: none;
    z-index: 3;
    opacity: 1;
    transition: opacity 0.35s ease-out;
}

.tabs-section.tabs-section--is-pinned::before {
    opacity: 0;
}

.tabs-section::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #000;
    opacity: 0;
    transition: opacity 0.35s ease-out;
    pointer-events: none;
    z-index: 0;
}

.tabs-section.tabs-section--is-pinned::after {
    opacity: 1;
}

.tabs-section.tabs-section--non-product {
    height: 100vh;
    min-height: 100vh;
    padding-bottom: 0;
    isolation: isolate;
    --tabs-top-fade-height: 100%;
}

.tabs-section.tabs-section--product {
    height: 100vh;
    min-height: 100vh;
    padding-bottom: 0;
    --tabs-top-fade-height: 250px;
}

@supports (height: 100lvh) {
    .tabs-section.tabs-section--product,
    .tabs-section.tabs-section--non-product {
        height: 100lvh;
        min-height: 100lvh;
        z-index: 10;
    }
}


/* Element: tabs-bg */
.tabs-section .tabs-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0;
	transition: opacity 0.28s ease-out;
	pointer-events: none;
	will-change: opacity;
	overflow: hidden;
}

.tabs-section .tabs-bg__media {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.tabs-section .tabs-bg--image .tabs-bg__media {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.tabs-section .tabs-bg--video .tabs-bg__media {
	object-fit: cover;
	display: block;
}

.tabs-section .tabs-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
    background: linear-gradient(180deg, rgb(0 0 0 / 22%) 0%, rgb(0 0 0 / 21%) 24%, rgb(0 0 0 / 25%) 48%, rgba(0, 0, 0, 0.42) 100%);
	z-index: 2;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.35s ease-out;
}

.tabs-section .tabs-overlay:after{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, rgb(0 0 0 / 39%) 30%, rgb(0 0 0 / 7%) 100%);
    z-index: 3;
}

.tabs-section.tabs-section--is-pinned .tabs-overlay {
	opacity: 1;
}

/* Modifier: active */
.tabs-section .tabs-bg.active {
    opacity: 1;
}

/* Element: tabs-container */
.tabs-section .tabs-container {
    position: relative;
    z-index: 4;
    max-width: 1440px;
    margin: 0 auto;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Element: tabs-header */
.tabs-section .tabs-header {
    text-align: center;
    margin-bottom: 60px;
}

/* Element: tabs-title-light */
.tabs-section .tabs-title-light {
    display: block;
    font-family: var(--font-primary);
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-light);
    text-shadow: var(--shadow-text-dark);
    color: var(--color-black);
}

/* Element: tabs-title-bold */
.tabs-section .tabs-title-bold {
    display: block;
    font-family: var(--font-primary);
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
    text-shadow: var(--shadow-text-dark);
    color: var(--color-black);
}

/* Element: tabs-title-line */
.tabs-section .tabs-title-line {
    width: 1px;
    height: 40px;
    background: var(--color-black);
    margin: 20px auto 0;
}

/* Custom title variant */
.tabs-section .custom-title {
    padding: 0;
    margin: 0 auto 40px;
}

.tabs-section .custom-title__header {
    text-align: center;
}

.tabs-section .custom-title__line {
    width: 1px;
    height: 40px;
    margin: 0 auto 20px;
    position: relative;
}

.tabs-section .custom-title__line-wrapper {
    background: var(--color-black);
}

.tabs-section .custom-title__line:first-child:before,
.tabs-section .custom-title__line:first-child:after {
    background-color: var(--color-black);
    border-color: var(--color-black);
}

.tabs-section .custom-title__line:last-child {
    height: 40px;
    position: relative;
    left: auto;
    transform: none;
}

.tabs-section .custom-title__line:last-child .custom-title__line-wrapper {
    background: var(--color-black);
}

.tabs-section .custom-title__title {
    font-family: var(--font-primary);
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-light);
    line-height: 1.1;
    letter-spacing: normal;
    color: var(--color-black);
    margin: 0;
}

/* Element: tabs-slider */
.tabs-section .tabs-slider {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex: 1;
}

/* Element: tabs-content */
.tabs-section .tabs-content {
    min-height: 300px;
    margin-bottom: 50px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Element: tabs-slide */
.tabs-section .tabs-slide {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
}

/* Modifier: active */
.tabs-section .tabs-slide.active {
    opacity: 1;
    position: relative;
    pointer-events: auto;
}

/* Element: slide-titles */
.tabs-section .slide-titles {
    margin-bottom: 55px;
    position: relative;
    display: inline-block;
    --corner-size: var(--font-size-3xl);
    --corner-offset-x: -23px;
    --corner-offset-y: -18px;
}

/* Element: slide-title-light and slide-title-bold */
.tabs-section .slide-title-light,
.tabs-section .slide-title-bold {
    display: block;
    font-family: var(--font-primary);
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-light);
    line-height: 50px;
    text-align: left;
    text-shadow: 0 4px 95px rgba(0, 0, 0, 0.40);
    color: #FFF;
    font-style: normal;
}

.tabs-section p{
    margin-bottom: 0;
}

.tabs-section .slide-title-bold,
.tabs-section .slide-title-bold strong,
.tabs-section strong {
    font-weight: var(--font-weight-bold);
    line-height: 30px;
}

/* Element: slide-description */
.tabs-section .slide-description {
    font-family: var(--font-primary);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
    line-height: normal;
    font-style: normal;
    max-width: 600px;
    margin-bottom: 62px;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
    color: #FFF;
}

/* Element: slide-read-more */
.tabs-section .slide-read-more {
    display: inline-block;
    padding: 10px 25px;
    border: 1px solid var(--color-white);
    border-radius: var(--radius-button);
    text-decoration: none;
    font-family: var(--font-sora);
    font-size: 11px;
    font-weight: var(--font-weight-normal);
    color: var(--color-white);
    box-shadow: var(--shadow-text-subtle);
}

/* Modifier: hover */
.tabs-section .slide-read-more:hover {
    background: var(--color-white);
    color: var(--color-black);
}

/* Element: tabs-navigation */
.tabs-section .tabs-navigation {
	display: flex;
	gap: 60px;
	padding-left: 10%;
	margin-bottom: 165px;
}

.tabs-section.tabs-section--full-tabs .tabs-navigation {
	padding-left: 0;
	width: 100%;
	gap: clamp(20px, 6vw, 130px);
}

/* Element: tab-button */
.tabs-section .tab-button {
	background: none;
	border: none;
	color: var(--color-white);
    font-family: var(--font-din-pro);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    padding: 0;
    text-align: left;
	text-shadow: var(--shadow-text-subtle);
}

.tabs-section.tabs-section--full-tabs .tab-button {
	flex: 1 1 0;
	max-width: none !important;
	text-align: left;
}

/* Modifier: active / activated */
.tabs-section .tab-button.active,
.tabs-section .tab-button.activated {
    color: var(--color-white);
}

/* Modifier: hover */
.tabs-section .tab-button:hover {
    color: var(--color-white);
}

/* Element: tab-text */
.tabs-section .tab-text {
	display: block;
	margin-bottom: 10px;
	color: rgba(255, 255, 255, 0.40);
	text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.tabs-section.tabs-section--full-tabs .tab-text {
	max-width: none;
}

.tabs-section .tab-button.active .tab-text,
.tabs-section .tab-button.activated .tab-text,
.tabs-section .tab-button:hover .tab-text {
    color: rgba(255, 255, 255, 1);
}

/* Element: tab-line */
.tabs-section .tab-line {
	display: block;
	width: 100%;
	height: 2px;
    position: relative;
    background: rgba(255, 255, 255, 0.40);
	max-width: 400px;
	z-index: 1;
	border-radius: var(--border-width-thick);
}

.tabs-section.tabs-section--full-tabs .tab-line {
	max-width: none;
}

/* Element: tab-line-progress */
.tabs-section .tab-line-progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-white);
    transform: scaleX(0);
    transform-origin: left center;
    border-radius: var(--border-width-thick);
}

/* Modifier: non-product mode */
.tabs-section.tabs-section--non-product .tab-button {
    flex: 1 1 0;
    max-width: 250px;
}

.tabs-section.tabs-section--non-product .tab-text {
    width: 100%;
    max-width: 250px;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (min-width: 1201px) {
    .tabs-section .tabs-navigation{
        margin-bottom: 50px;
    }
    .tabs-section .tabs-content{
        margin-bottom: 90px;
    }
}
@media (max-width: 1200px) {
    .tabs-section .tabs-title-light,
    .tabs-section .tabs-title-bold,
    .tabs-section .slide-title-light,
    .tabs-section .slide-title-bold {
        font-size: 40px;
    }

    .animate-corners:before, .animate-corners:after{
        --corner-size: 40px;
    }
    
    .tabs-section .tabs-navigation {
        gap: 40px;
    }
}

@media (max-width: 1024px) {
    .tabs-section {
        padding: 60px 5%;
    }
    
    .tabs-section .tabs-title-light,
    .tabs-section .tabs-title-bold,
    .tabs-section .slide-title-light,
    .tabs-section .slide-title-bold {
        font-size: 28px;
        line-height: 32px;
    }

    .animate-corners:before, .animate-corners:after{
        --corner-size: 28px;
    }
    
    .tabs-section .slide-description {
        font-size: 15px;
        line-height: 22px;
    }
    
    .tabs-section .tabs-content {
        min-height: 250px;
        margin-bottom: 100px;
    }
    
    .tabs-section .tabs-content,
    .tabs-section .tabs-navigation {
        padding-left: 0;
    }
}



@media (max-width: 768px) {
    .tabs-section {
        padding: 60px max(5%, 35px);
    }

    .tabs-section .custom-title{
        margin-top: 25px;
    }


    .tabs-section.tabs-section--full-tabs .tabs-navigation{
        bottom: 0;
        margin-bottom: 25px;
    }
}

@media (max-width: 480px) {

    .tabs-section .tabs-title-light,
    .tabs-section .tabs-title-bold,
    .tabs-section .slide-title-light,
    .tabs-section .slide-title-bold {
        font-size: 22px;
        line-height: 26px;
    }

    .animate-corners:before, .animate-corners:after{
        --corner-size: 25px;
    }
    
    .tabs-section .slide-description {
        font-size: var(--font-size-sm);
        line-height: 20px;
    }
    
    .tabs-section .slide-read-more {
        padding: var(--spacing-sm) 20px;
        font-size: 10px;
    }
    
    .tabs-section .tab-button {
        font-size: 13px;
    }
    
    .tabs-section .tabs-content {
        min-height: 220px;
    }
    
    .tabs-section .tabs-navigation {
        gap: 15px;
    }
}
