/* == Utility == */
/* Heading */
.heading-light {
    --color: #fff;
}

.heading-light .heading-background {
    --opacity: 0.7;
    --linear-gradient-opactiy: 0.2;
}

.heading-dark {
    --color: #043737;
}

.heading-dark .heading-background {
    --opacity: 0.5;
    --linear-gradient-opactiy: 0.25;
}

.heading-background {
    width: 1000px;
    font: 900 132px "SF Pro Display", sans-serif;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 2px var(--color);
    margin-bottom: -68px;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, var(--linear-gradient-opactiy)) 0%, rgba(0, 0, 0, 0) 100%);
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, var(--linear-gradient-opactiy)) 0%, rgba(0, 0, 0, 0) 100%);
    word-spacing: -20px;
    text-transform: uppercase;
    height: 132px;
    letter-spacing: -3px;
    line-height: 1;
    opacity: 0;
}

.heading-sub {
    color: var(--color);
    font-weight: 600;
    text-transform: uppercase;
    opacity: 0;
}

.heading-main {
    margin-top: 40px;
    font-size: 48px;
    font-weight: 700;
    color: var(--color);
    opacity: 0;
}

.heading.detected .heading-background {
    --x: 100px;
    opacity: var(--opacity);
    animation: GoIn 1s ease backwards;
}

.heading.detected .heading-sub {
    --x: 100px;
    opacity: 1;
    animation: GoIn 1s ease 0.4s backwards;
}

.heading.detected .heading-main {
    --x: 100px;
    opacity: 1;
    animation: GoIn 1s ease 0.6s backwards;
}

/* Button */
.nav-button-1 {
    width: 54px;
    height: 30px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.link-button {
    position: relative;
    border-radius: 38px;
    height: 48px;
    display: inline-block;
    outline: 1px solid #fff;
    color: #fff !important;
    text-decoration: unset;
    padding: 14px 48px 14px 0;
    width: 0;
    opacity: 0;
    backdrop-filter: blur(6px);
    transition: width 0.7s ease, padding 0.7s ease, opacity 0.7s ease 0.2s;
}

.link-button .link-button-text {
    white-space: nowrap;
    overflow: hidden;
    height: 100%;
    display: flex;
    align-items: center;
}

.link-button .link-button-icon {
    position: absolute;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 8px;
    right: 4px;
    top: 4px;
    border-radius: 100px;
    background: #fff;
    overflow: hidden;
    transition: width 0.5s ease;
}

.link-button .link-button-icon .pseudo-text {
    position: absolute;
    color: #054444 !important;
    white-space: nowrap;
    width: var(--width);
    right: 0;
    padding: 0 63px 0 38px;
}

.link-button:hover {
    cursor: pointer;
    outline-width: 1px !important;
}

.link-button:hover .link-button-icon {
    width: calc(100% - 8px);
}

.swiper-slide-active .link-button {
    transition: width 1s ease, padding 1s ease, opacity 1s ease;
    opacity: 1;
    width: var(--width);
    padding: 14px 63px 14px 38px;
}