@import url("./root-variables.css");
@import url("./grid.css");

* {
   box-sizing: border-box;
   outline: none;
}
:root {
    --website-border-mask: linear-gradient(#000, #000) content-box content-box, linear-gradient(#000, #000);
}
body,
html {
   padding: 0;
   margin: 0;
   min-height: 100%;
   max-width: 100vw;
}
body {
    overflow-x: hidden;
    position: relative;
    -webkit-tap-highlight-color: transparent;
    font-family: var(--website-t-content-ff);
    font-size: var(--website-t-content-fs);
    line-height: var(--website-t-content-lh);
    letter-spacing: var(--website-t-content-ls);
    font-weight: var(--website-t-content-fw);
    color: var(--website-s-text);
    background: var(--website-s-body-bg);
    scroll-behavior: smooth;
}
body.is-unloading {
    pointer-events: none;
}
body.fullscreen-page {
    overflow: hidden;
}
body.fullscreen-page {
    height: 100svh;
}
body.is-loaded {
    opacity: 1;
}
body.is-unloaded {
    mask-position: 175%;
    transition: mask-position 0.75s;
}
iframe {
	max-width: 100%;
    border-radius: var(--website-default-br);
}
iframe.google-map {
    border-radius: var(--website-small-br);
}
img,
video {
    display: block;
    max-width: 100%;
    height: auto;
}
img,
video {
    border-radius: var(--website-default-br);
}
header img,
header video,
footer video,
footer img,
.logo img {
    border-radius: unset;
}
.parallax-media:not([class*='parallax-grid']),
.parallax-media .st-lazy-wrapper,
.parallax-image {
    overflow: hidden;
    border-radius: var(--website-default-br);
}

[data-bg-src] {
    background: var(--website-s-container-bg) no-repeat center;
    background-size: cover;
    position: relative;
}
.grid-item-link {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    z-index: 7;
    border-radius: inherit;
}

::selection {
    color: var(--website-s-heading);
    background-color: var(--website-s-accent);
}
img,
a img,
.website-counter,
header#main-header,
.swiper,
.disable-selection {
	-webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.highlight {
    color: var(--website-s-heading);
}
strong {
    font-weight: var(--website-t-heading-fw);
    color: var(--website-s-heading);
}
p {
	margin: 0 0 var(--website-t-content-lh) 0;
}
.large-text {
    font-size: var(--website-t-large-fs);
    line-height: var(--website-t-content-lh);
    color: var(--website-s-heading);
}
p:last-child {
	margin: 0;
}
p:empty {
	display: none;
}
a {
    position: relative;
}
    
a,
a:focus,
a:visited {
    text-decoration: none;
    color: var(--website-s-text-accent);
}
a {
    transition: color 0.3s;
}
address {
	margin: 0 0 28px 0;
}
ins,
tt,
kbd,
code,
pre {
	padding: 7px 15px 8px 15px;
	display: inline-block;
	margin: 10px 0;
	max-width: 100%;
}
tt,
kbd,
code {
	margin: 0 5px;
}
abbr {
	text-transform: uppercase;
}
ins, acronym, abbr {
	text-decoration: none;
}
kbd,
code {
	margin: 10px 5px;
	font-family: monospace;
}
pre {
	white-space: pre-wrap;
	margin-bottom: 1.65em;
}
hr {
    border: none;
	width: 100%;
    height: 1px;
    background: var(--website-c-border-gradient);
	margin: 1.65em 0;
}
hr:first-child {
	margin-top: 0;
}
hr:first-child {
	margin-bottom: 0;
}
label,
blockquote cite,
.website-label,
.footer-label {
    font-size: var(--website-t-meta-fs);
    font-weight: var(--website-t-meta-fw);
    letter-spacing: var(--website-t-meta-ls);
    color: var(--website-s-heading-fade);
    text-transform: uppercase;
    margin-bottom: 4px;
}
sup {
	font-size: 0.6em;
	margin-right: 2px;
    display: inline-block;
    transform: translateY(0.05em);
}

.title-with-label h1 {
    margin-bottom: 0;
}
.title-with-label .label:first-child {
    display: block;
    margin-bottom: var(--grid-xs-gap);
}
.title-with-label .label:last-child {
    display: block;
    margin-top: 4px;
    margin-bottom: 0;
}

.is-dropcap::first-letter {
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    line-height: var(--website-t-h2-lh);
    color: var(--website-s-heading);
    font-size: var(--website-t-h2-fs);
    letter-spacing: var(--website-t-h2-ls);
    display: block;
	float: left;
	margin: -6px 16px -8px 0;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    color: var(--website-s-heading);
}
h1, h2, h3 {
    margin: 0 0 var(--grid-gap) 0;
}
h4, h5, h6 {
    margin: 0 0 var(--grid-small-gap) 0;
}
h1:last-child, h2:last-child, h3:last-child, h4:last-child, h5:last-child, h6:last-child {
    margin-bottom: 0;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
	color: var(--website-s-heading);
}
h1 sup, h2 sup, h3 sup, h4 sup, h5 sup, h6 sup {
	opacity: 0.25;
}
.accent {
    color: var(--website-s-text-accent);
}
.is-accented .accent {
    color: var(--website-s-heading);
}

.page-title {
    display: block;
    width: 100%;
}
.post-title {
    margin-bottom: 0;
}
.post-title:not(:last-child),
.page-title:not(:last-child) {
    margin-bottom: var(--grid-gap);
}
.title-with-meta span:first-child {
    margin-bottom: 4px;
    display: block;
}
.title-with-meta span:last-child {
    margin-top: 4px;
    display: block;
}
h1.page-title {
    margin-bottom: calc( -1 * var(--grid-small-gap) );
}
.section-title {
    margin-bottom: var(--grid-large-gap);
}
.section-title p.is-short {
    max-width: calc(0.5 * var(--grid-container-width));
    margin: 0 auto;
}
.page-title.is-large {
    font-size: calc(1.2 * var(--wesbite-t-h1-fs));
    line-height: calc(1.2 * var(--website-t-h1-lh));
}
h1 {
    font-size: var(--website-t-h1-fs);
    letter-spacing: var(--website-t-h1-ls);
    line-height: var(--website-t-h1-lh);
    margin: var(--website-t-h1-margin);
}
h2 {
    font-size: var(--website-t-h2-fs);
    letter-spacing: var(--website-t-h2-ls);
    line-height: var(--website-t-h2-lh);
    margin: var(--website-t-h2-margin);
}
h3 {
    font-size: var(--website-t-h3-fs);
    letter-spacing: var(--website-t-h3-ls);
    line-height: var(--website-t-h3-lh);
    margin: var(--website-t-h3-margin);
}
h4 {
    font-size: var(--website-t-h4-fs);
    letter-spacing: var(--website-t-h4-ls);
    line-height: var(--website-t-h4-lh);
    margin: var(--website-t-h4-margin);
}
.block h4 {
    margin-bottom: var(--grid-gap);
}
h5 {
    font-size: var(--website-t-h5-fs);
    letter-spacing: var(--website-t-h5-ls);
    line-height: var(--website-t-h5-lh);
    margin: var(--website-t-h5-margin);
}
h6 {
    font-size: var(--website-t-h6-fs);
    letter-spacing: var(--website-t-h6-ls);
    line-height: var(--website-t-h6-lh);
    margin: var(--website-t-h6-margin);
}
.grid-vertical-space-between > h1,
.grid-vertical-space-between > h2,
.grid-vertical-space-between > h3,
.grid-vertical-space-between > h4,
.grid-vertical-space-between > h5,
.grid-vertical-space-between > h6 {
    margin-bottom: 0;
}
.align-center h1,
.align-center h2,
.align-center h3,
.align-center h4,
.align-center h5,
.align-center h6 {
    margin-left: auto;
    margin-right: auto;
}
.portfolio-meta {
    font-size: var(--website-t-meta-fs);
    font-weight: var(--website-t-heading-fw);
    font-family: var(--website-t-heading-ff);
    letter-spacing: var(--website-t-meta-ls);
    text-transform: uppercase;
    color: var(--website-s-heading-fade);
    margin-bottom: calc(0.5 * var(--grid-xs-gap));
}
.portfolio-meta.highlight {
    color: var(--website-s-heading);
}
.portfolio-meta > a,
.portfolio-meta > span {
    color: var(--website-s-heading);
}

.align-left {
    text-align: left;
}
.align-center {
    text-align: center;
}
.align-right {
    text-align: right;
}
.align-center img {
	margin-left: auto;
	margin-right: auto;
}
.align-right img {
	margin-left: auto;
}

.marked-list {
    padding: 0;
    margin: 0;
}
.marked-list li {
    list-style: none;
    padding: 0 0 0 28px;
    margin: 0 0 1.5em 0;
    position: relative;
}
.marked-list li:last-child {
    margin: 0;
}
.marked-list:not(:last-child) {
    margin: 0 0 1.5em 0;
}
.marked-list li::before {
    content: '';
    width: 16px;
    height: 12px;
    display: block;
    position: absolute;
    left: 0;
    top: 5px;
    background: var(--website-s-heading);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    -webkit-mask-image: var(--icon-check);
    mask-image: var(--icon-check);
}

ol,
ul {
	padding: 0;
	margin: 0;
}
ol:last-child,
ul:last-child {
    margin: 0;
}
ol li,
ul li {
	padding: 0;
    margin: 0;
    list-style: disc;
}

blockquote cite {
    opacity: 1;
    position: relative;
}
blockquote cite::before {
    content: '';
    width: 8px;
    height: 2px;
    background-color: var(--website-s-heading);
    display: inline-block;
    margin-right: 8px;
    vertical-align: middle;
    transform: translateY(-1px);
}
cite {
	text-align: right;
	display: block;
	font-style: normal;
}

#main-header {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 111;
    background: var(--website-s-nav);
}
#main-header.is-sticky {
    position: fixed;
}
#main-header.is-frosted {
    -webkit-backdrop-filter: saturate(150%) blur(12px);
    backdrop-filter: saturate(150%) blur(12px);
}
#main-header::after {
    content: '';
    width: 100%;
    height: 1px;
    display: block;
    background: var(--website-c-border-gradient);
    position: absolute;
    bottom: 0;
    left: 0;
}
#main-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient( 0deg, transparent 25%, var(--website-s-body-bg) 100%);
    display: block;
}
.no-header-border #main-header::after {
    display: none;
}
.main-header-inner {
    padding: var(--website-header-spacing) 0;
    min-height: 44px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: var(--grid-container-width);
    margin: 0 auto;
    position: relative;
    z-index: 5;
}
.mobile-header-inner {
    display: none;
}

nav.event-nav ul.main-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(0.5 * var(--website-menu-gap));
    --stea-move: var(--grid-small-gap);
}
ul.main-menu li {
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: var(--website-t-menu-ff);
    font-weight: var(--website-t-menu-fw);
    font-size: var(--website-t-menu-fs);
    line-height: var(--website-t-menu-lh);
    position: relative;
}
ul.sub-menu li {
    font-family: var(--website-t-submenu-ff);
    font-weight: var(--website-t-submenu-fw);
    font-size: var(--website-t-submenu-fs);
    line-height: var(--website-t-submenu-lh);
}
ul.main-menu li.menu-divider {
    position: relative;
    padding: 12px 0;
    height: 1px;
    pointer-events: none;
}
ul.main-menu li.menu-divider::after {
    content: '';
    width: 100%;
    height: 1px;
    display: block;
    background: var(--website-c-border-gradient);
    position: absolute;
    left: 0;
    top: 12px;
    opacity: 0.5;
}
nav.event-nav ul.main-menu > li > a {
    padding: calc(0.25 * var(--website-menu-gap));
}
ul.main-menu a {
    color: var(--website-c-menu);
    display: block;
    transition: color 0.3s;
}
ul.main-menu li.active-menu-parent > a,
ul.main-menu li.active-menu-item > a,
ul.main-menu li.active-menu-ancestor > a {
    color: var(--website-c-menu-active);
    font-weight: var(--website-t-heading-fw);
}
#main-header ul.sub-menu > li.active-menu-item a::after,
#main-header ul.sub-menu > li.active-menu-parent a::after {
    content: '';
    position: absolute;
    width: 2px;
    height: calc(100% - 16px);
    left: -8px;
    top: 8px;
    background: var(--website-s-heading);
    border-radius: 1px;
}
ul.main-menu li.menu-item-has-children > a::after {
    content: '';
    width: var(--website-t-menu-fs);
    height: var(--website-t-menu-fs);
    background: var(--website-c-menu);
    transition: background-color 0.3s;
    display: inline-block;
    margin-left: 8px;
    vertical-align: middle;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    -webkit-mask-image: var(--icon-chevron-down);
    mask-image: var(--icon-chevron-down);
    transform: scale(1.5) translateY(-1px);
}
ul.main-menu li.menu-item-has-children.active-menu-parent > a::after,
ul.main-menu li.menu-item-has-children.active-menu-item > a::after,
ul.main-menu li.menu-item-has-children.active-menu-ancestor > a::after {
    color: var(--website-c-menu-active);
}

nav.event-nav ul.sub-menu {
    display: block;
    position: absolute;
    top: 100%;
    left: -16px;
    width: var(--website-sub-menu-width);
    background: var(--website-s-container-bg) radial-gradient(circle at center bottom, var(--website-s-backlight) 0%, transparent) no-repeat;
    z-index: 222;
    border-radius: var(--website-small-br);
    padding: 8px;
    transition: opacity 0.2s, transform 0.2s;
    will-change: opacity, transform;
    pointer-events: none;
    opacity: 0;
    transform: scale(1, 0);
    transform-origin: 50% 0%;
}
nav.event-nav ul.sub-menu ul.sub-menu {
    top: -8px;
    left: calc(100% + 16px);
    z-index: 223;
    transform: scale(0, 1);
    transform-origin: 0% 50%;
}
nav.event-nav ul.sub-menu::before,
nav.event-nav ul.sub-menu ul.sub-menu::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    user-select: none;
}
nav.event-nav ul.sub-menu::before {
    right: 0;
    bottom: 0;
    inset: 0px;
    padding: 1px;
    background: linear-gradient( 0deg, var(--website-s-border), var(--website-s-backlight) );
    mask: var(--website-border-mask);
    -webkit-mask: var(--website-border-mask);
    border-radius: var(--website-small-br);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
}
nav.event-nav ul.sub-menu ul.sub-menu::after {
    width: 32px;
    height: 100%;
    top: 0;
    left: -24px;
    background: transparent;
}
nav.event-nav ul.sub-menu li {
    position: relative;
    z-index: 3;
}
nav.event-nav ul.sub-menu li::before {
    content: '';
    background: var(--website-s-backlight);
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    border-radius: var(--website-xs-br);
    transition: opacity 0.3s;
    will-change: opacity;
    opacity: 0;
}
nav.event-nav ul.sub-menu li a {
    padding: 12px;
    position: relative;
    z-index: 4;
}
nav.event-nav ul.sub-menu li.menu-item-has-children > a::after {
    position: absolute;
    right: 8px;
    top: calc(50% - calc(0.5 * var(--website-t-menu-fs)));
    mask-image: var(--icon-menu-chevron);
    -webkit-mask-image: var(--icon-menu-chevron);
    transform: scale(1.5) translateX(0px);
}

nav.event-nav li.menu-item-has-children:hover > ul.sub-menu {
    opacity: 1;
    transform: scale(1);
    pointer-events: all;
}

.mobile-nav {
    position: fixed;
    right: 0;
    top: var(--header-height);
    width: 100%;
    height: calc(100% - var(--header-height));
    max-width: 390px;
    z-index: 88;
    background: var(--website-s-nav);
    contain: paint;
    overflow-y: scroll;
    scrollbar-width: none;
    pointer-events: none;
    transform: translateX(100%);
    transition: transform 0.3s;
    will-change: transform;
    display: none;
}
.mobile-nav.is-frosted {
    -webkit-backdrop-filter: saturate(150%) blur(12px);
    backdrop-filter: saturate(150%) blur(12px);
}

main#home-main {
    position: relative;
    z-index: 5;
    contain: paint;
    padding-top: var(--header-height);
    transition: opacity 0.5s;
    will-change: opacity;
}
body:not(.is-loaded) main#home-main {
    opacity: 0;
}
body.fullscreen-page main#home-main {
    transition: opacity 0.5s, transform 0.8s;
    will-change: transform, opacity;
}
body.fullscreen-page:not(.is-loaded) main#home-main {
    transform: scale(1.05);
}
#home-main.min-content {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    padding: 0 0 var(--footer-height) 0;
    min-height: calc(100svh - var(--footer-height));
}
body.home-fullscreen-page main#home-main {
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100svh;
    padding-top: 0;
}
section {
    padding: var(--website-section-gap) 0;
    position: relative;
}
section.big-padding {
    --website-section-gap: 175px;
    --website-section-gap: 110px;
    padding: var(--website-section-gap) 0;
}
section > div {
    position: relative;
    z-index: 5;
}
section[data-padding="none"] {
    padding-top: 0;
    padding-bottom: 0;
}
section[data-padding="top"] {
    padding-bottom: 0;
}
section[data-padding="bottom"] {
    padding-top: 0;
}
section[data-padding="small"] {
    padding: calc(0.5 * var(--website-section-gap)) 0;
}
section.is-fullwidth {
    max-width: 100svw;
    --website-fw-spacing: calc(0.5 * (100vw - var(--grid-container-width)));
    margin-left: calc(-1 * var(--website-fw-spacing));
    margin-right: calc(-1 * var(--website-fw-spacing));
    padding-left: var(--website-fw-spacing);
    padding-right: var(--website-fw-spacing);
}
section.is-fullwidth.is-stretched {
    padding-left: 0;
    padding-right: 0;
}
section.is-fullwidth.is-stretched > .is-boxed {
    --website-fw-spacing: calc(0.5 * (100vw - var(--grid-container-width)));
    padding-left: var(--website-fw-spacing);
    padding-right: var(--website-fw-spacing);
}
section.backlight-top::before,
section.backlight-bottom::after,
section.backlight-both::before,
section.backlight-both::after,
section.divider-both::before,
section.divider-both::after,
section.divider-top::before,
section.divider-bottom::after {
    content: '';
    position: absolute;
    z-index: 1;
    left: calc(-0.5 * (100vw - var(--grid-container-width)));
    pointer-events: none;
}
.grid-container.is-fullwidth section.backlight-top::before,
.grid-container.is-fullwidth section.backlight-bottom::after,
.grid-container.is-fullwidth section.backlight-both::before,
.grid-container.is-fullwidth section.backlight-both::after,
.grid-container.is-fullwidth section.divider-both::before,
.grid-container.is-fullwidth section.divider-both::after,
.grid-container.is-fullwidth section.divider-top::before,
.grid-container.is-fullwidth section.divider-bottom::after,
section.is-fullwidth.backlight-top::before,
section.is-fullwidth.backlight-bottom::after,
section.is-fullwidth.backlight-both::before,
section.is-fullwidth.backlight-both::after,
section.is-fullwidth.divider-both::before,
section.is-fullwidth.divider-both::after,
section.is-fullwidth.divider-top::before,
section.is-fullwidth.divider-bottom::after {
    left: 0;
}
section.backlight-top::before,
section.backlight-bottom::after,
section.backlight-both::before,
section.backlight-both::after {
    width: 100vw;
    height: 50vw;
}
section.backlight-top::before,
section.backlight-both::before {
    background: radial-gradient( 100vw circle at 50vw 0%, var(--website-s-backlight), transparent 50% );
}
section.backlight-bottom::after,
section.backlight-both::after {
    background: radial-gradient( 100vw circle at 50vw 100%, var(--website-s-backlight), transparent 50% );
}
section.backlight-top::before,
section.backlight-both::before {
    top: 0;
}
section.backlight-bottom::after,
section.backlight-both::after {
    bottom: 0;
}
section.divider-both::before,
section.divider-both::after,
section.divider-top::before,
section.divider-bottom::after {
    width: 100vw;
    height: 1px;
    display: block;
    background: var(--website-c-border-gradient);
}
section.divider-both::before,
section.divider-top::before {
    top: 0;
}
section.divider-both::after,
section.divider-bottom::after {
    bottom: 0;
}
section.backlight-top:last-child::before {
    height: 100%;
}

.backlight {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient( 50vw circle at var(--mouse-x) var(--mouse-y), var(--website-s-cursor-light), transparent 50% );
    opacity: 0.75;
    z-index: 1;
}

.detailed-list {
    margin: 0;
    padding: 0;
    position: relative;
}
.detailed-list li {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    padding: var(--grid-gap) 0 calc(1px + var(--grid-gap)) 0;
    position: relative;
    margin: 0 calc(-0.5 * var(--grid-gap));
}
.detailed-list::before,
.detailed-list li::before,
.detailed-list li::after {
    content: '';
    position: absolute;
    width: 100%;
    display: block;
}
.detailed-list::before,
.detailed-list li::after {
    left: calc(-0.5 * (100vw - var(--grid-container-width)));
    bottom: 0;
    height: 1px;
    background: var(--website-c-border-gradient);
    width: 100vw;
}
.detailed-list::before {
    bottom: auto;
    top: 0;
}
.detailed-list li::before {
    height: 100%;
    background: radial-gradient(ellipse, var(--website-s-heading) 0%, transparent 75%) no-repeat bottom center;
    background-size: 100% 200%;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 0.3s;
    will-change: opacity;
}
.detailed-list li > div {
    margin: 0 calc(0.5 * var(--grid-gap));
}
.detailed-list li a {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    display: block;
}
.detailed-list-title {
    min-width: calc(33.333% - var(--grid-gap));
    max-width: calc(33.333% - var(--grid-gap));
}
.detailed-list-title > * {
    margin-top: 0;
}
.detailed-list-description {
    min-width: calc(66.666% - 2 * var(--grid-gap) - 80px);
    max-width: calc(66.666% - 2 * var(--grid-gap) - 80px);
}
.detailed-list-button {
    width: 80px;
    height: 80px;
    border: 2px solid var(--website-s-heading);
    border-radius: var(--website-small-br);
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s, border-color 0.3s;
}
.detailed-list-button span.icon {
    width: 24px;
    height: 24px;
}


/* Footer CSS */
#footer {
    position: relative;
    z-index: 22;
}
#footer.is-sticky,
.fullscreen-page #footer {
    position: fixed;
    width: 100%;
    bottom: 0;
    left: 0;
    background: var(--website-s-nav);
}
#footer.is-frosted,
.fullscreen-page #footer.is-frosted {
    -webkit-backdrop-filter: saturate(150%) blur(12px);
    backdrop-filter: saturate(150%) blur(12px);
}
#footer a {
    color: var(--website-s-heading);
}

.footer-line::before,
.footer-widgets::before {
    content: '';
    width: 100%;
    height: 1px;
    display: block;
    background: var(--website-c-border-gradient);
    position: absolute;
    top: 0;
    left: 0;
}
.footer-widgets::before {
    opacity: 0.5;
}
.footer-widgets {
    padding: var(--grid-large-gap) 0;
    position: relative;
}
.footer-widgets::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    background: var(--website-s-backlight) radial-gradient( 100vw circle at 50vw 35vw, var(--website-s-backlight), transparent 50% );
    opacity: 0.5;
    pointer-events: none;
}
.footer-widgets .grid-container {
    position: relative;
    z-index: 3;
}
.footer-widgets h6 {
    margin-bottom: var(--grid-gap);
}
.widget ul {
    margin: 0;
    padding: 0;
}
.widget ul li {
    padding: 0;
    margin: 0;
    list-style: none;
}

.info-widget {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
}
.info-widget .logo {
    margin: 0 0 var(--grid-gap) 0;
}
.info-description {
    margin-bottom: 28px;
}
.info-widget .footer-label {
    margin-bottom: var(--grid-xs-gap);
    color: var(--website-s-heading);
}

.contacts-widget ul li:not(:last-child) {
    margin-bottom: 16px;
}
.contacts-widget .label {
    display: block;
}

.masked-block {
    position: relative;
    --masked-border-radius: var(--website-default-br);
}

.masked-content,
.masked-content.at-top-left {
    position: absolute;
    top: 0;
    left: 0;
    bottom: auto;
    right: auto;
}
.masked-content.at-top-right {
    top: 0;
    left: auto;
    bottom: auto;
    right: 0;
}
.masked-content.at-bottom-left {
    top: auto;
    left: 0;
    bottom: 0;
    right: auto;
}
.masked-content.at-bottom-right {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0;
}
.masked-content.at-middle-right,
.masked-content.at-middle-left {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
}
.masked-content.at-middle-right {
    right: 0;
    left: auto;
}
.masked-content.at-middle-left {
    left: 0;
    right: auto;
}
.masked-content.at-top-center,
.masked-content.at-bottom-center {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}
.masked-content.at-top-center {
    top: 0;
    bottom: auto;
}
.masked-content.at-bottom-center {
    bottom: 0;
    top: auto;
}

.masked-content .square-button,
.masked-content.at-top-left .square-button {
    margin: 0 var(--grid-small-gap) var(--grid-small-gap) 0;
}
.masked-content.at-top-right .square-button {
    margin: 0 0 var(--grid-small-gap) var(--grid-small-gap);
}
.masked-content.at-bottom-left .square-button {
    margin: var(--grid-small-gap) var(--grid-small-gap) 0 0;
}
.masked-content.at-bottom-right .square-button {
    margin: var(--grid-small-gap) 0 0 var(--grid-small-gap);
}
.masked-content.at-top-center .square-button {
    margin: 0 var(--grid-small-gap) var(--grid-small-gap) var(--grid-small-gap);
}
.masked-content.at-bottom-center .square-button {
    margin: var(--grid-small-gap) var(--grid-small-gap) 0 var(--grid-small-gap);
}
.masked-content.at-middle-left .square-button {
    margin: var(--grid-small-gap) var(--grid-small-gap) var(--grid-small-gap) 0;
}
.masked-content.at-middle-right .square-button {
    margin: var(--grid-small-gap) 0 var(--grid-small-gap) var(--grid-small-gap);
}

.masked-content > div,
.masked-content.at-top-left > div {
    padding: 0 var(--grid-small-gap) var(--grid-small-gap) 0;
}
.masked-content.at-top-right > div {
    padding: 0 0 var(--grid-small-gap) var(--grid-small-gap);
}
.masked-content.at-bottom-left > div {
    padding: var(--grid-small-gap) var(--grid-small-gap) 0 0;
}
.masked-content.at-bottom-right > div {
    padding: var(--grid-small-gap) 0 0 var(--grid-small-gap);
}
.masked-content.at-top-center > div {
    padding: 0 var(--grid-small-gap) var(--grid-small-gap) var(--grid-small-gap);
}
.masked-content.at-bottom-center > div {
    padding: var(--grid-small-gap) var(--grid-small-gap) 0 var(--grid-small-gap);
}
.masked-content.at-middle-left > div {
    padding: var(--grid-small-gap) var(--grid-small-gap) var(--grid-small-gap) 0;
}
.masked-content.at-middle-right > div {
    padding: var(--grid-small-gap) 0 var(--grid-small-gap) var(--grid-small-gap);
}

.masked-cta .cta-form {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--grid-gap);
    padding: var(--grid-large-gap);
    background: var(--website-s-accent);
}
.masked-cta button {
    background: var(--website-s-heading);
    border-color: var(--website-s-heading);
    border-radius: var(--website-default-br);
    padding: calc(1.5 * var(--grid-gap)) calc(1.5 * var(--grid-large-gap));
}
.masked-cta button span {
    background: var(--website-s-accent);
    width: 32px;
    height: 32px;
}
.cta-title {
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    font-size: var(--website-t-h1-fs);
    letter-spacing: var(--website-t-h1-ls);
    line-height: var(--website-t-h1-lh);
    color: var(--website-s-heading);
    margin-bottom: var(--grid-large-gap);
}
.masked-cta input {
    background: var(--website-s-border);
    color: var(--website-s-heading);
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    font-size: var(--website-t-h2-fs);
    letter-spacing: var(--website-t-h2-ls);
    line-height: 1;
    border-radius: var(--website-default-br);
    padding: var(--grid-gap);
    padding-top: calc(var(--grid-gap) - 4px);
}
.masked-cta input:focus {
    border-color: var(--website-s-border);
}
.masked-cta input::-webkit-input-placeholder {
	opacity: 1;
	color: var(--website-s-heading);
}
.masked-cta input::-moz-placeholder {
	opacity: 1;
	color: var(--website-s-heading);
}
.masked-cta input::-ms-input-placeholder {
	opacity: 1;
	color: var(--website-s-heading);
}
.masked-cta-content {
    text-align: right;
    width: 350px;
}
.masked-cta-content p {
    display: block;
    padding: 0 0 var(--grid-d-gap) var(--grid-d-gap);
}

.footer-menu-widget ul li {
    margin: 0 -8px;
    position: relative;
}
.footer-menu-widget a {
    display: block;
    padding: 8px;
    position: relative;
    z-index: 3;
    opacity: 0.7;
    transition: opacity 0.3s;
}
.footer-menu-widget ul {
    margin: -8px 0;
}
.footer-menu-widget ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    border-radius: var(--website-xs-br);
    background: var(--website-s-backlight);
    z-index: 1;
    opacity: 0;
    transform-origin: 0 50%;
    will-change: opacity;
    transition: opacity 0.2s;
}

.no-footer-border .footer-line::before {
    display: none;
}
.footer-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--grid-gap) 0;
    position: relative;
    font-size: var(--website-t-footer-fs);
    line-height: var(--website-t-footer-lh);
}
.footer-line:has(.align-center) {
    justify-content: center;
}
.footer-divider {
    margin: 0 8px;
}

ul.socials-list {
    display: flex;
    gap: var(--website-socials-gap);
}
ul.socials-list.grid-xs-gap {
    gap: var(--grid-xs-gap);
}
ul.socials-list.grid-small-gap {
    gap: var(--grid-small-gap);
}
ul.socials-list.grid-large-gap {
    gap: var(--grid-large-gap);
}
ul.socials-list.grid-xl-gap {
    gap: var(--grid-xl-gap);
}
.footer-line ul.socials-list {
    margin: -8px 0;
}
.socials-list li {
    list-style: none;
    padding: 0;
    display: block;
}
.socials-list a {
    position: relative;
    width: calc(var(--website-socials-size) + 24px);
    height: calc(var(--website-socials-size) + 24px);
    padding: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--website-xs-br);
    transition: transform 0.1s, background-color 0.3s;
    will-change: transform;
}
.socials-list a::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    top: 0;
    border-radius: inherit;
    border: 1px solid var(--website-s-heading);
    transition: opacity 0.3s;
    will-change: opacity;
}
.socials-list i {
    width: var(--website-socials-size);
    height: var(--website-socials-size);
    background-color: var(--website-s-heading);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    display: block;
    z-index: 3;
}
.socials-500px i {
    -webkit-mask-image: var(--icon-social-500px);
    mask-image: var(--icon-social-500px);
}
.socials-behance i {
    -webkit-mask-image: var(--icon-social-behance);
    mask-image: var(--icon-social-behance);
}
.socials-dribbble i {
    -webkit-mask-image: var(--icon-social-dribbble);
    mask-image: var(--icon-social-dribbble);
}
.socials-facebook i {
    -webkit-mask-image: var(--icon-social-facebook);
    mask-image: var(--icon-social-facebook);
}
.socials-flickr i {
    -webkit-mask-image: var(--icon-social-flickr);
    mask-image: var(--icon-social-flickr);
}
.socials-instagram i {
    -webkit-mask-image: var(--icon-social-instagram);
    mask-image: var(--icon-social-instagram);
}
.socials-linkedin i {
    -webkit-mask-image: var(--icon-social-linkedin);
    mask-image: var(--icon-social-linkedin);
}
.socials-patreon i {
    -webkit-mask-image: var(--icon-social-patreon);
    mask-image: var(--icon-social-patreon);
}
.socials-pinterest i {
    -webkit-mask-image: var(--icon-social-pinterest);
    mask-image: var(--icon-social-pinterest);
}
.socials-tiktok i {
    -webkit-mask-image: var(--icon-social-tiktok);
    mask-image: var(--icon-social-tiktok);
}
.socials-tumblr i {
    -webkit-mask-image: var(--icon-social-tumblr);
    mask-image: var(--icon-social-tumblr);
}
.socials-vimeo i {
    -webkit-mask-image: var(--icon-social-vimeo);
    mask-image: var(--icon-social-vimeo);
}
.socials-x i {
    -webkit-mask-image: var(--icon-social-x);
    mask-image: var(--icon-social-x);
}
.socials-xing i {
    -webkit-mask-image: var(--icon-social-xing);
    mask-image: var(--icon-social-xing);
}
.socials-youtube i {
    -webkit-mask-image: var(--icon-social-youtube);
    mask-image: var(--icon-social-youtube);
}

.socials-list.framed-socials {
    flex-wrap: wrap;
    gap: var(--grid-small-gap);
}

.icon {
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    background: var(--website-s-heading);
    display: block;
    width: 24px;
    height: 24px;
}
.icon-explore {
    -webkit-mask-image: var(--icon-arrow-explore);
    mask-image: var(--icon-arrow-explore);
}
.icon-arrow-down {
    -webkit-mask-image: var(--icon-arrow-down);
    mask-image: var(--icon-arrow-down);
}
.icon-arrow-left {
    -webkit-mask-image: var(--icon-arrow-left);
    mask-image: var(--icon-arrow-left);
}
.icon-arrow-right {
    -webkit-mask-image: var(--icon-arrow-right);
    mask-image: var(--icon-arrow-right);
}
.icon-arrow-submit {
    -webkit-mask-image: var(--icon-arrow-submit);
    mask-image: var(--icon-arrow-submit);
}
.icon-creativity {
    -webkit-mask-image: var(--icon-creativity);
    mask-image: var(--icon-creativity);
}
.icon-collab {
    -webkit-mask-image: var(--icon-collab);
    mask-image: var(--icon-collab);
}
.icon-impact {
    -webkit-mask-image: var(--icon-impact);
    mask-image: var(--icon-impact);
}
.icon-innovation {
    -webkit-mask-image: var(--icon-innovation);
    mask-image: var(--icon-innovation);
}
.icon-chevron-left {
    -webkit-mask-image: var(--icon-chevron-left);
    mask-image: var(--icon-chevron-left);
}
.icon-chevron-right {
    -webkit-mask-image: var(--icon-chevron-right);
    mask-image: var(--icon-chevron-right);
}

label {
    transition: opacity 0.2s;
    display: block;
    margin-bottom: 8px;
}
label.in-focus {
    opacity: 1;
}
input,
textarea {
    width: 100%;
    display: block;
    font-family: var(--website-t-content-ff);
    font-weight: var(--website-t-content-fw);
    font-size: var(--website-t-input-fs);
    line-height: 1em;
    letter-spacing: var(--website-t-content-ls);
    border: 1px solid var(--website-s-border);
    border-radius: var(--website-input-br);
    background: var(--website-s-container-bg);
    padding: var(--website-input-spacing);
    color: var(--website-s-text);
    transition: color 0.3s, border-color 0.3s, box-shadow 0.3s;
    box-shadow: 0 0 8px transparent;
}
input:focus,
textarea:focus {
    border-color: var(--website-s-accent);
    color: var(--website-s-heading);
    box-shadow: 0 8px 16px var(--website-s-box-shadow);
}
input:not(:last-child),
textarea:not(:last-child) {
    margin-bottom: var(--website-input-gap);
}
textarea {
    line-height: var(--website-t-input-lh);
    height: 191px;
    resize: vertical;
}
input[type="button"],
input[type="reset"],
input[type="submit"],
button[type="submit"],
a.web-button {
    font-family: var(--website-t-content-ff);
    font-weight: var(--website-t-content-fw);
    font-size: var(--website-t-button-fs);
    line-height: 1;
    padding: var(--website-button-spacing);
    display: inline-block;
    color: var(--website-s-accented-text);
    background: var(--website-s-accent);
    border-radius: var(--website-button-br);
    border: 1px solid var(--website-s-border-accent);
    transition: background-color 0.3s;
    cursor: pointer;
}
a.web-button.is-secondary,
.web-square-button.is-secondary {
    background: transparent;
    transition: background-color 0.3s, border-color 0.3s;
    border-color: var(--website-s-heading);
}
input[type="button"].is-fullwidth,
input[type="reset"].is-fullwidth,
input[type="submit"].is-fullwidth,
button.is-fullwidth,
.web-button.is-fullwidth {
    width: 100%;
    display: block;
    text-align: center;
}

.hero-type01 .hero-social-proof {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    padding-top: var(--grid-small-gap);
}
.hero-type01 .hero-social-proof > div {
    display: flex;
    justify-content: flex-end;
    margin-right: -4px;
    margin-bottom: 20px;
}
.hero-type01 .hero-social-proof p {
    text-align: right;
    text-transform: uppercase;
    color: var(--website-s-heading);
    max-width: 110px;
}
.hero-type01 .hero-social-proof img,
.hero-type01 .hero-social-proof a {
    display: flex;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    margin-left: -32px;
    border: 4px solid var(--website-s-body-bg);
}
.hero-type01 .hero-social-proof a {
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--website-s-heading);
    background: var(--website-s-accent);
}

.counter {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
    row-gap: var(--stg-small-gap);
    position: relative;
    text-align: center;
    padding: var(--stg-large-gap) var(--stg-small-gap);
}
.counter-number {
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    font-size: var(--website-t-h1-fs);
    letter-spacing: var(--website-t-h1-ls);
    line-height: var(--website-t-h1-lh);
    color: var(--website-s-heading);
}
.counter-number::before {
    content: attr(data-prefix);
}
.counter-number::after {
    content: attr(data-suffix);
}

.counter.small-counter {
    padding: 0;
    text-align: left;
    row-gap: 2px;
}
.small-counter .counter-number {
    font-size: var(--website-t-h3-fs);
    font-size: var(--website-t-h3-fs);
    letter-spacing: var(--website-t-h3-ls);
    line-height: var(--website-t-h3-lh);
}

.arrow-link,
a.arrow-link {
    display: inline-block;
    position: relative;
    font-size: var(--website-t-meta-fs);
    font-weight: var(--website-t-meta-fw);
    letter-spacing: var(--website-t-meta-ls);
    color: var(--website-s-heading);
    text-transform: uppercase;
    padding: 0 24px 2px 0;
    margin-top: -5px;
}
.arrow-link::before,
.arrow-link::after {
    content: '';
    position: absolute;
    background: var(--website-s-heading);
    transition: transform 0.3s;
}
.arrow-link::before {
    width: calc(100% - 24px);
    height: 2px;
    bottom: 0;
    transform-origin: 0 50%;
}
.arrow-link::after {
    content: '';
    width: 16px;
    height: 16px;
    background: var(--website-s-heading);
    display: block;
    right: 0;
    top: 6px;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    -webkit-mask-image: var(--icon-arrow-explore);
    mask-image: var(--icon-arrow-explore);
    transform-origin: 0% 100%;
}


.portfolio-card {
    padding: var(--grid-small-gap);
    border-radius: var(--website-default-br);
}
.portfolio-card-image {
    transition: transform 0.3s;
    will-change: transform;
    contain: paint;
    aspect-ratio: 1/1;
    border-radius: var(--website-small-br);
}
.portfolio-card-image .st-lazy-wrapper {
    border-radius: var(--website-small-br);
}
.portfolio-card-image img,
.portfolio-card-image video {
    border-radius: unset;
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.portfolio-card-footer {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: var(--grid-small-gap) 0 9px 0;
}
.portfolio-card-title {
    min-height: 24px;
    align-self: flex-end;
}
.portfolio-card-title h6 {
    margin: 0;
}
.portfolio-card .icon {
    transform-origin: 0% 100%;
    width: 24px;
    height: 24px;
    transition: transform 0.3s;
    margin-right: var(--grid-xs-gap);
    margin-top: var(--grid-xs-gap);
}
.portfolio-card > a {
    position: absolute;
    left: 0;  
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    border-radius: var(--website-small-br);
}

[class*='website-grid'] {
    display: grid;
    grid-column-gap: var(--grid-gap);
    grid-row-gap: var(--grid-gap);
}
.website-grid-1col {
    grid-template-columns: repeat(1, 1fr);
}
.website-grid-2cols {
    grid-template-columns: repeat(2, 1fr);
}
.website-grid-3cols {
    grid-template-columns: repeat(3, 1fr);
}
.website-grid-4cols {
    grid-template-columns: repeat(4, 1fr);
}
.website-grid-5cols {
    grid-template-columns: repeat(5, 1fr);
}
.website-grid-6cols {
    grid-template-columns: repeat(6, 1fr);
}
.subgrid-item {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
}

.carousel {
    --swiper-gap: var(--grid-gap);
}
.pagination-dots .swiper-pagination-bullet {
    background: var(--website-s-heading);
}
.pagination-dots .swiper-pagination-bullet-active {
    background: var(--website-s-heading);
}
.pagination-dots.swiper-pagination {
    position: static;
    bottom: auto;
    left: auto;
    margin: var(--grid-gap) auto 0 auto;
    transform: none!important;
    height: 12px;
}
.pagination-dots .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
}

.portfolio-block {
    border-radius: var(--website-small-br);
    background-color: var(--website-s-container-bg);
    padding: var(--grid-gap);
    padding-bottom: calc(var(--grid-gap) - 3px);
    position: relative;
    --mouse-x: 50%;
    --mouse-y: 0;
}
.portfolio-block.grid-valign-middle {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.portfolio-block.is-frosted {
    background: var(--website-s-container-frosted);
    -webkit-backdrop-filter: saturate(150%) blur(12px);
    backdrop-filter: saturate(150%) blur(12px);
}
[class*='grid-col'].portfolio-block {
    border-radius: var(--website-default-br);
}
.portfolio-block::before,
.portfolio-block::after {
    content: '';
    border-radius: inherit;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}
.portfolio-block::before {
    inset: 0px;
    padding: 1px;
    background: radial-gradient( 800px circle at var(--mouse-x) var(--mouse-y), var(--website-s-border-highlight), var(--website-s-border-mute) 40% );
    mask: var(--website-border-mask);
    -webkit-mask: var(--website-border-mask);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    transition: opacity 0.4s;
    will-change: opacity;
    opacity: 0.75;
}
.portfolio-block.is-accented {
    background: var(--website-s-accent) bottom right no-repeat;
    color: var(--website-s-accented-text);
}
.portfolio-block.is-accented::before {
    background: radial-gradient( 800px circle at var(--mouse-x) var(--mouse-y), var(--website-s-text-accent), var(--website-s-border-accent) 40% );
}
.portfolio-block::after {
    opacity: 0;
    transition: opacity 0.4s;
    will-change: opacity;
    width: 100%;
    background: radial-gradient( 800px circle at var(--mouse-x) var(--mouse-y), var(--website-s-backlight), transparent 40% );
    z-index: 5;
}

.portfolio-card {
    padding: var(--grid-small-gap);
    border-radius: var(--website-default-br);
}
.portfolio-card-image {
    transition: transform 0.3s;
    will-change: transform;
    contain: paint;
    aspect-ratio: 1/1;
    border-radius: var(--website-small-br);
}
.portfolio-card-image .st-lazy-wrapper {
    border-radius: var(--website-small-br);
}
.portfolio-card-image img,
.portfolio-card-image video {
    border-radius: unset;
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.portfolio-card-footer {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: var(--grid-small-gap) 0 9px 0;
}
.portfolio-card-title {
    min-height: 24px;
    align-self: flex-end;
}
.portfolio-card-title h6 {
    margin: 0;
}
.portfolio-card .icon {
    transform-origin: 0% 100%;
    width: 24px;
    height: 24px;
    transition: transform 0.3s;
    margin-right: var(--grid-xs-gap);
    margin-top: var(--grid-xs-gap);
}
.portfolio-card > a {
    position: absolute;
    left: 0;  
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    border-radius: var(--website-small-br);
}

.slider-wrapper {
    position: relative;
}
.slider-wrapper svg {
    position: absolute;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    pointer-events: none;
    opacity: 0;
}
.slider {
    border-radius: var(--website-default-br);
    position: relative;
}
.slider-wrapper .slider {
    border-radius: 0;
}
.slider:not([data-effect="coverflow"]) img,
.slider:not([data-effect="coverflow"]) video {
    border-radius: 0;
}
.slider-nav {
    position: absolute;
    z-index: 22;
}

.slider-nav.masked-content {
    display: flex;
    width: 160px;
    height: 80px;
}
.slider-nav.masked-content a {
    width: 64px;
    height: 64px;
    margin: 16px 0 0 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    border-radius: var(--website-small-br);
    transition: background-color 0.3s;
}
.slider-nav.masked-content a::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    border-radius: inherit;
    border: 2px solid var(--website-s-heading);
    z-index: 3;
    transition: opacity 0.3s;
    will-change: opacity;
}
.slider-nav.masked-content span.icon {
    width: 16px;
    height: 16px;
    position: relative;
    z-index: 5;
    transition: transform 0.3s;
    will-change: transform;
}

.hero-block .page-title {
    margin-bottom: 0;
}
.hero-block .page-title span {
    font-size: var(--website-t-h2-fs);
    letter-spacing: var(--website-t-h2-ls);
    line-height: var(--website-t-h2-lh);
}
.hero-info-line {
    display: flex;
    justify-content: space-between;
    --stea-move: var(--grid-gap);
}
.hero-info-line .portfolio-meta {
    margin: 0;
}
.hero-info-line > div {
    width: 33.33%;
}
.hero-info-line > div:nth-child(2) {
    text-align: center;
}
.hero-info-line > div:nth-child(3) {
    text-align: right;
}

@keyframes sta_spin {
	0% {
		transform: rotate(0);
	}
	100% {
		transform: rotate(360deg);
	}
}

@keyframes sta_shake {
    0% {
        transform: translateX(0);
    }
    10% {
        transform: translateX(-10px);
    }
    30% {
        transform: translateX(10px);
    }
    50% {
        transform: translateX(-10px);
    }
    70% {
        transform: translateX(10px);
    }
    90% {
        transform: translateX(-10px);
    }
    100% {
        transform: translateX(0);
    }
}

/* === Marquee === */
@keyframes marquee_scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* === List with Preview === */
@keyframes lwp_active {
    0% {
        clip-path: inset(0% 0% 0% 100% round var(--bringer-default-br));
    }
    100% {
        clip-path: inset(0% 0% 0% 0% round var(--bringer-default-br));
    }
}
@keyframes lwp_active_r {
    0% {
        clip-path: inset(0% 100% 0% 0% round var(--bringer-default-br));
    }
    100% {
        clip-path: inset(0% 0% 0% 0% round var(--bringer-default-br));
    }
}

/* === Entrance Animations === */
:root {
    --stea-move: var(--stg-gap);
    --stea-zoom-in: 0.9;
    --stea-zoom-out: 1.1;
    --stea-duration: 0.5s;
}
[data-split-appear] {
    --stea-move: 0.5cap;
}
[data-split-appear].bringer-line-overflow:not(.is-done) .line {
    overflow: hidden;
}
[data-split-appear].setting-up [data-appear] {
    transition: unset!important;
}
[data-unload*='fade-'].is-unloading,
[data-unload*='zoom-'].is-unloading,
[data-appear*='fade-']:not(.setting-up),
[data-appear*='zoom-']:not(.setting-up) {
    transition: opacity var(--stea-duration), transform var(--stea-duration);
    will-change: opacity, transform;
}
[data-unload*='fade-'].is-unloading,
[data-unload*='zoom-'].is-unloading,
[data-appear*='fade-'],
[data-appear*='zoom-'] {
    opacity: 0;
}
[data-appear*="zoom-"].in-view,
[data-appear*="fade-"].in-view {
    opacity: 1;
    transform: scale(1) translate(0,0);
}
[data-unload="zoom-out"].is-unloading,
[data-appear="zoom-in"],
[data-appear="fade-zoom"] {
    transform: scale(var(--stea-zoom-in));
}
[data-unload="fade-down"].is-unloading,
[data-appear="fade-up"] {
    transform: translateY(var(--stea-move));
}
[data-unload="fade-up"].is-unloading,
[data-appear="fade-down"] {
    transform: translateY(calc(-1 * var(--stea-move)));
}
[data-unload="fade-right"].is-unloading,
[data-appear="fade-left"] {
    transform: translateX(var(--stea-move));
}
[data-unload="fade-left"].is-unloading,
[data-appear="fade-right"] {
    transform: translateX(calc(-1 * var(--stea-move)));
}
[data-unload="fade-down-right"].is-unloading,
[data-appear="fade-up-left"] {
    transform: translate(var(--stea-move), var(--stea-move));
}
[data-unload="fade-down-left"].is-unloading,
[data-appear="fade-up-right"] {
    transform: translate(calc(-1 * var(--stea-move)), var(--stea-move));
}
[data-unload="fade-up-right"].is-unloading,
[data-appear="fade-down-left"] {
    transform: translate(var(--stea-move), calc(-1 * var(--stea-move)));
}
[data-unload="fade-up-left"].is-unloading,
[data-appear="fade-down-right"] {
    transform: translate(calc(-1 * var(--stea-move)), calc(-1 * var(--stea-move)));
}
[data-unload="zoom-out-down"].is-unloading,
[data-appear="zoom-in-up"] {
    transform: translateY(var(--stea-move)) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-up"].is-unloading,
[data-appear="zoom-in-down"] {
    transform: translateY(calc(-1 * var(--stea-move))) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-right"].is-unloading,
[data-appear="zoom-in-left"] {
    transform: translateX(var(--stea-move)) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-left"].is-unloading,
[data-appear="zoom-in-right"] {
    transform: translateX(calc(-1 * var(--stea-move))) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-down-right"].is-unloading,
[data-appear="zoom-in-up-left"] {
    transform: translate(var(--stea-move), var(--stea-move)) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-down-left"].is-unloading,
[data-appear="zoom-in-up-right"] {
    transform: translate(calc(-1 * var(--stea-move)), var(--stea-move)) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-up-right"].is-unloading,
[data-appear="zoom-in-down-left"] {
    transform: translate(var(--stea-move), calc(-1 * var(--stea-move))) scale(var(--stea-zoom-in));
}
[data-unload="zoom-out-up-left"].is-unloading,
[data-appear="zoom-in-down-right"] {
    transform: translate(calc(-1 * var(--stea-move)), calc(-1 * var(--stea-move))) scale(var(--stea-zoom-in));
}
[data-unload="fade-zoom"].is-unloading,
[data-unload="zoom-in"].is-unloading,
[data-appear="zoom-out"] {
    transform: scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-down"].is-unloading,
[data-appear="zoom-out-up"] {
    transform: translateY(var(--stea-move)) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-up"].is-unloading,
[data-appear="zoom-out-down"] {
    transform: translateY(calc(-1 * var(--stea-move))) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-right"].is-unloading,
[data-appear="zoom-out-left"] {
    transform: translateX(var(--stea-move)) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-left"].is-unloading,
[data-appear="zoom-out-right"] {
    transform: translateX(calc(-1 * var(--stea-move))) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-down-right"].is-unloading,
[data-appear="zoom-out-up-left"] {
    transform: translate(var(--stea-move), var(--stea-move)) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-down-left"].is-unloading,
[data-appear="zoom-out-up-right"] {
    transform: translate(calc(-1 * var(--stea-move)), var(--stea-move)) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-up-right"].is-unloading,
[data-appear="zoom-out-down-left"] {
    transform: translate(var(--stea-move), calc(-1 * var(--stea-move))) scale(var(--stea-zoom-out));
}
[data-unload="zoom-in-up-left"].is-unloading,
[data-appear="zoom-out-down-right"] {
    transform: translate(calc(-1 * var(--stea-move)), calc(-1 * var(--stea-move))) scale(var(--stea-zoom-out));
}

section[data-tp-padding="none"] {
    padding-top: 0;
}

.grid-bottom-gap-section {
    margin-bottom: 0;
}

form.contact-form {
    box-shadow: 0 8px 16px var(--website-s-box-shadow);
    width: 100%;
    transition: transform 0.3s;
    will-change: transform;
}
.form-content {
    transition: opacity 0.3s;
}
form.contact-form.is-busy .form-content {
    opacity: 0.5;
}
.contact-form:not(.is-short) [type="submit"] {
    margin-bottom: 0;
    width: 100%;
}
.form-spinner {
    width: 48px;
    height: 48px;
    border: 2px solid var(--website-s-border-mute);
    border-top-color: var(--website-s-heading);
    border-radius: 50%;
    animation: sta_spin 1s infinite linear;
    pointer-events: none;
    position: absolute;
    z-index: 15;
    top: calc(50% - 24px);
    left: calc(50% - 24px);
    display: block;
    will-change: transform, opacity;
    opacity: 0;
    transition: opacity 0.3s;
}
.contact-form.is-busy .form-spinner {
    opacity: 1;
}
.contact-form.is-busy {
    transform: scale(0.95);
    pointer-events: none;
}
.contact-form.is-error {
    animation: sta_shake 0.3s linear;
}
.contact-form__response {
    padding-top: var(--grid-gap);
    text-align: center;
    position: static;
    font-size: var(--website-t-meta-fs);
    font-weight: var(--website-t-meta-fw);
    letter-spacing: var(--website-t-meta-ls);
    color: var(--website-s-heading);
    text-transform: uppercase;
    width: 100%;
    display: none;
}
.is-short .contact-form__response {
    position: absolute;
    top: 100%;
    left: 0;
}
.masked-cta .contact-form__response {
    top: auto;
    left: var(--grid-large-gap);
    bottom: calc( 0.5 * (var(--grid-large-gap) - var(--website-t-content-lh)) );
}

.cta-form-title {
    font-family: var(--website-t-heading-ff);
    font-weight: var(--website-t-heading-fw);
    color: var(--website-s-heading);
    font-size: var(--website-t-h1-fs);
    letter-spacing: var(--website-t-h1-ls);
    line-height: var(--website-t-h1-lh);
}
.cta-text {
    padding: calc(var(--grid-gap) + var(--grid-large-gap)) 0;
}
.cta-icon {
    position: relative;
}
.cta-icon,
.cta-icon::before,
.cta-icon::after {
    background-color: var(--website-s-text-accent);
    border-radius: 4px;
    width: 8px;
    height: 64px;
    display: block;
}
.cta-icon::before,
.cta-icon::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
}
.cta-icon::before {
    transform: rotate(120deg);
}
.cta-icon::after {
    transform: rotate(240deg);
}


@media (hover:hover) {
    a:hover {
        color: var(--website-s-heading);
    }

    input[type="button"]:hover,
    input[type="reset"]:hover,
    input[type="submit"]:hover,
    a.website-button:hover {
        background-color: var(--website-button-hover-bg);
    }
    a.website-button.is-secondary:hover,
    .square-button.is-secondary:hover {
        background: var(--website-s-accent);
        border-color: var(--website-s-border-accent);
    }
    a.website-button.is-secondary:hover {
        background: var(--website-s-border);
    }

    ul.main-menu li:hover > a {
        color: var(--website-c-menu-hover);
    }
    ul.main-menu li.menu-item-has-children:hover > a::after {
        background-color: var(--website-c-menu-hover);
    }
    ul.sub-menu li:hover::before {
        opacity: 1;
    }
    nav.event-nav ul.sub-menu li:hover::before {
        opacity: 1;
    }

    #footer .menu-widget a:hover,
    .menu-widget ul li:hover::before {
        opacity: 1;
    }
    .socials-list a:hover {
        background-color: var(--website-s-accent);
    }
    .socials-list a:hover::before {
        opacity: 0.15;
    }

    .block:hover::after {
        opacity: 0.75;
    }
    .block:hover::before {
        opacity: 1;
    }

    .tags-list li a:hover {
        background-color: var(--website-s-accent);
        border-color: var(--website-s-border-accent);
    }
    .arrow-link:hover::before {
        transform: scale(0, 1);
    }
    .arrow-link:hover::after {
        transform: scale(1.2, 1.2);
    }

    .icon-link:hover i {
        transform: scale(1.2);
    }
    .icon-link:hover .icon-wrap {
        background-color: var(--website-s-accent);
    }
    .icon-link:hover .icon-wrap::before {
        opacity: 0.15;
    }
    .icon-link:hover .icon-link-content:first-child {
        transform: translateX(calc(-1 * var(--grid-xs-gap)));
    }
    .icon-link:hover .icon-link-content:last-child {
        transform: translateX(var(--grid-xs-gap));
    }
    
    .square-button:hover span.icon {
        transform: scale(1.2);
    }

    .portfolio-card:hover .icon {
        transform: scale(1.2, 1.2);
    }
    .portfolio-card:hover .portfolio-card-image {
        transform: scale(1.01);
    }
    .portfolio-short-item:hover .icon {
        transform: scale(1.2);
    }
    
    .carousel-card:hover .icon {
        transform: scale(1.2, 1.2);
    }
    .carousel-card:hover .carousel-card-image {
        transform: scale(1.01);
    }
    .detailed-list li:hover::before {
        opacity: 0.05;
    }
    .detailed-list li:has(a):hover .detailed-list-button {
        background: var(--website-s-accent);
        border-color: var(--website-s-border-accent);
    }
    .grid-more-masked:hover .square-button.is-secondary {
        background: var(--website-s-accent);
        border-color: var(--website-s-border-accent);
    }
    .grid-more-masked:hover .square-button span.icon {
        transform: scale(1.2);
    }

    .slider-nav.masked-content a:hover span.icon {
        transform: scale(1.2);
    }
    .slider-nav.masked-content a:hover {
        background-color: var(--website-s-accent);
    }
    .slider-nav.masked-content a:hover::before {
        opacity: 0.15;
    }
    .slider-nav.on-sides a.slider-next:hover span.icon {
        transform: translateX(10px)
    }
    .slider-nav.on-sides a.slider-prev:hover span.icon {
        transform: translateX(-10px)
    }
    .slide-content:has(a):hover .slide-content-inner {
        transform: scale(1.1);
    }
    
    .masked-cta button:hover {
        background: var(--website-s-heading-fade);
    }
}