/* Illumina */

/* FONT-FACE */
@font-face {
    font-family: 'Inter';
    src: url('../fonts/Inter-Light.woff2') format('woff2');
    font-weight: 300;
    font-display: swap;
    font-style: normal;
}

@font-face {
    font-family: 'Sora';
    src: url('../fonts/Sora-Medium.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
    font-style: normal;
}

/* ROOT */
:root {
    /* colors */
    --white: #FFFFFF;
    --black: #181C1C;
    --yellow: #FCB813;
    --silver: #7C7C7C;
    /* variants */
    --black-700: #3E4747;
    --black-950: #000000;
    --yellow-dark: #EAA200;
    --yellow-light: #F9D585;
    --silver-dark: #999999;
    --silver-light: #ECECEC;
    --silver-light-100: #F5F5F5;
    --silver-light-300: #D3D3D3;
    --silver-light-400: #A3A3A3;
    --silver-light-600: #535353;
    --silver-light-700: #404040;
    /*--silver-light-100: #F5F5F5;*/
    /* alpha */
    /* color-mix(in srgb, var(--white) 30%, transparent) */
    --dimming: linear-gradient(to right, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3));
    --dimming-to-top: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));
    /* spacings / 390 -> 1920  */
    --spacing-1: 8px;
    --spacing-2: 12px;
    --spacing-3: 16px;
    --spacing-4: 24px;
    --spacing-5: 32px;
    /* 32/48 */
    --spacing-6: clamp(2rem, 1.745rem + 1.046vw, 3rem);
    /* 48/64 */
    --spacing-7: clamp(3rem, 2.745rem + 1.046vw, 4rem);
    /* 48/80 */
    --spacing-8: clamp(3rem, 2.49rem + 2.092vw, 5rem);
    /* 64/128 */
    --spacing-9: clamp(4rem, 2.98rem + 4.183vw, 8rem);
    /* 72/160 */
    --spacing-10: clamp(4.5rem, 3.098rem + 5.752vw, 10rem);
    /* typography / 390 -> 1920 */
    --font-family-base: 'Inter', system-ui, 'Segoe UI', sans-serif;
    --font-family-headline: 'Sora', system-ui, 'Segoe UI', sans-serif;
    --font-weight-base: 300;
    --font-weight-headline: 500;
    --line-height-base: 1.6;
    --line-height-headline: 1.2;
    /* 14 */
    --font-size-sm: 14px;
    /* 16 */
    --font-size-base: 16px;
    /* 16/18 */
    --font-size-lg: clamp(1rem, 0.968rem + 0.131vw, 1.125rem);
    /* 18/20 */
    --font-size-xl: clamp(1.125rem, 1.093rem + 0.131vw, 1.25rem);
    /* 20/24 */
    --font-size-2xl: clamp(1.25rem, 1.186rem + 0.261vw, 1.5rem);
    /* 22/32 */
    --font-size-3xl: clamp(1.375rem, 1.216rem + 0.654vw, 2rem);
    /* 30/48 */
    --font-size-4xl: clamp(1.875rem, 1.588rem + 1.176vw, 3rem);
    /* 38/72 */
    --font-size-5xl: clamp(2.375rem, 1.833rem + 2.222vw, 4.5rem);
    /* grid */
    --grid-margin: 1.5rem;
    --grid-gap: 1rem;
    --single-col: calc((100vw - 2 * var(--grid-margin) - 11 * var(--grid-gap)) / 12);
    /* misc */
    --border-radius-8: 8px;
    --border-radius-full: 100px;
}

@media (min-width: 1024px) {

    :root {
        --grid-margin: 5vw;
        --grid-gap: 2rem;
    }
}

/* SITE */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
    /*outline: 0;*/
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

body {
    background-color: var(--white);
}

main.main {
    display: flex !important;
    flex-direction: column !important;
    overflow-x: clip;
}

main.main>.e-con-inner {
    /*row-gap: var(--spacing-10);*/
}

.e-con,
.e-con-inner {
    padding: 0 !important;
}

.e-con-inner {
    max-width: none !important;
}

.e-con>.e-con-inner {
    gap: 0;
}

/* CONTENT GRID */
.content-grid {
    display: grid;
    column-gap: var(--grid-gap);
    grid-template-columns: [full-width-start] calc(var(--grid-margin) - var(--grid-gap)) [content-start] repeat(12, minmax(0, 1fr)) [content-end] calc(var(--grid-margin) - var(--grid-gap)) [full-width-end];
}

.content-grid>* {
    grid-column: content;
}

.content-grid .content-grid {
    grid-column: full-width;
}

/*.grid-cols-12 {
    display: grid;
    column-gap: var(--grid-gap);
    grid-template-columns: [content-start] repeat(12, minmax(0, 1fr)) [content-end];
}

.grid-cols-12>* {
    grid-column: content;
}*/

/* COLORS */
::selection {
    color: var(--black);
    background: color-mix(in srgb, var(--yellow) 50%, transparent);
}

/* SPACINGS */
.gap-y-5 {
    row-gap: var(--spacing-5);
}

.gap-y-6 {
    row-gap: var(--spacing-6);
}

.gap-y-8 {
    row-gap: var(--spacing-8) !important;
}

.gap-y-9 {
    row-gap: var(--spacing-9) !important;
}

/*.gap-grid {
    gap: var(--grid-gap);
}*/

section.section.pbs-9 {
    padding-block-start: var(--spacing-9) !important;
}

section.section.pbe-9 {
    padding-block-end: var(--spacing-9) !important;
}

.mt-xs {
    margin-top: 2px;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-7 {
    margin-bottom: var(--spacing-7) !important;
}

.mb-8 {
    margin-bottom: var(--spacing-8) !important;
}

/* TYPOGRAPHY */
h1,
h2,
h3,
h4,
h5,
h6,
.font-headline p {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    line-height: var(--line-height-headline) !important;
    color: var(--black);
    font-style: normal;
    text-wrap: balance;
    hyphens: auto;
}

h1 {
    font-size: var(--font-size-5xl);
    /*    line-height: 1.4 !important;*/
    margin-bottom: 0.444em !important;
}

.elementor-widget-text-editor h1:not(:first-child) {
    margin-top: 0.888em;
}

h2 {
    font-size: var(--font-size-4xl);
    /*    line-height: 1.4 !important;*/
    margin-bottom: 0.666em !important;
}

.elementor-widget-text-editor h2:not(:first-child) {
    margin-top: 1.332em;
}

h3 {
    font-size: var(--font-size-3xl);
    /*    line-height: 1.4 !important;*/
    margin-bottom: 0.75em !important;
}

.elementor-widget-text-editor h3:not(:first-child) {
    margin-top: 1.5em;
}

h4 {
    font-size: var(--font-size-2xl);
    line-height: 1.3 !important;
    margin-bottom: 0.666em !important;
}

.elementor-widget-text-editor h4:not(:first-child) {
    margin-top: 1.332em;
}

h5 {
    font-size: var(--font-size-xl);
    /*    line-height: 1.4 !important;*/
    margin-bottom: 0.8em !important;
}

.elementor-widget-text-editor h5:not(:first-child) {
    margin-top: 1.6em;
}

h6 {
    font-size: var(--font-size-lg);
    /*    line-height: 1.4 !important;*/
    margin-bottom: 0.444em !important;
}

.elementor-widget-text-editor h6:not(:first-child) {
    margin-top: 0.888em;
}

body,
p {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-base);
    font-size: var(--font-size-xl);
    line-height: var(--line-height-base) !important;
    color: var(--black);
    word-wrap: break-word;
    text-wrap: pretty;
    hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
    hyphenate-limit-lines: 2;
    hyphenate-limit-last: always;
    hyphenate-limit-zone: 8%;
}

p {
    margin-bottom: 1em;
    /*    max-width: 75ch;*/
}

p.text-large {
    font-size: var(--font-size-3xl);
    line-height: 1.4 !important;
}

.eyebrow p {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-base);
    color: var(--yellow) !important;
    margin-bottom: clamp(0.75rem, 0.559rem + 0.784vw, 1.5rem) !important;
}

.test-label p {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    color: var(--silver-dark);
}

strong {
    font-weight: 300;
}

div>p:last-child {
    margin-bottom: 0;
}

.font-size-4xl h1,
.font-size-4xl h2,
.font-size-4xl h3,
.font-size-4xl h4,
.font-size-4xl h5,
.font-size-4xl h6 {
    font-size: var(--font-size-4xl) !important;
    /*line-height: 1.3 !important;*/
}

.font-size-2xl h1,
.font-size-2xl h2,
.font-size-2xl h3,
.font-size-2xl h4,
.font-size-2xl h5,
.font-size-2xl h6,
.font-size-2xl p {
    font-size: var(--font-size-2xl) !important;
    line-height: 1.3 !important;
}

.mb-0 h1,
.mb-0 h2,
.mb-0 h3,
.mb-0 h4,
.mb-0 h5,
.mb-0 h6 {
    margin-bottom: 0 !important;
}

/* LAYOUTS */
/*.layout-text {
    row-gap: var(--spacing-5);
}*/

@media (min-width: 1024px) {

    .layout-text {
        grid-template-areas: ". heading heading heading heading heading text text text text text text text .";
    }

    .layout-text-centered {
        grid-template-areas: ". . . text text text text text text text . . . .";
    }

    .layout-heading-large-subline {
        grid-template-areas: ". heading heading heading heading heading heading heading text text text text text .";
        align-items: flex-end;
    }

    .layout-heading-large {
        grid-template-areas: ". heading heading heading heading heading heading heading heading heading . . . .";
    }

    .layout-heading {
        grid-template-areas: ". heading heading heading heading heading . . . . . . . .";
    }

    .layout-heading-subline {
        grid-template-areas: ". heading heading heading heading heading . text text text text text text .";
    }

    .layout-image-text {
        grid-template-areas: ". image image image image . text text text text text text text .";
    }

    .layout-cta {
        grid-template-areas: ". . . text text text text text text text text . . .";
    }

    .layout-hero {
        grid-template-areas: ". heading heading heading heading heading heading heading heading heading . . . .";
    }

    .layout-contact {
        grid-template-areas: ". heading heading heading heading heading heading text text text text text text .";
    }

    .layout-footer {
        grid-template-areas: ". heading heading heading heading heading heading text text text text text text .";
    }
}

@media (min-width: 1280px) {

    .layout-text {
        grid-template-areas: ". heading heading heading heading heading text text text text text text . .";
    }

    .layout-text-centered {
        grid-template-areas: ". . . text text text text text text . . . . .";
    }

    .layout-heading-large-subline {
        grid-template-areas: ". heading heading heading heading heading heading heading . text text text text .";
    }

    .layout-heading-large {
        grid-template-areas: ". heading heading heading heading heading heading heading . . . . . .";
    }

    .layout-heading-subline {
        grid-template-areas: ". heading heading heading heading heading . . . text text text text .";
    }

    .layout-image-text {
        grid-template-areas: ". image image image image . text text text text text text . .";
    }

    .layout-cta {
        grid-template-areas: ". . . . text text text text text text . . . .";
    }

    .layout-hero {
        grid-template-areas: ". heading heading heading heading heading heading heading . . . . . .";
    }

    .layout-contact {
        grid-template-areas: ". heading heading heading heading heading . text text text text text text .";
    }

    .layout-footer {
        grid-template-areas: ". heading heading heading heading heading . . . text text text text .";
    }
}

/* AREAS */
.area-heading h1,
.area-heading h2 {
    margin-top: 0 !important;
}

.layout-heading-large-subline .area-text p {
    text-wrap: balance;
}

.layout-cta .area-text {
    text-align: center;
}

@media (min-width: 768px) {

    .layout-hero .area-heading {
        max-width: calc(100% - 2 * (var(--single-col) + var(--grid-gap)));
    }

    .layout-hero .area-heading p {
        max-width: calc(100% - 2 * (var(--single-col) + var(--grid-gap)));
    }
}

@media (min-width: 1024px) {

    .area-heading {
        grid-area: heading;
    }

    .area-text {
        grid-area: text;
    }

    .area-image {
        grid-area: image;
    }

    .layout-text .area-heading {
        /*padding-right: calc(var(--single-col) - var(--grid-gap));*/
        max-width: calc(100% - (var(--single-col) - var(--grid-gap))) !important;
    }

    .layout-text .area-heading h1,
    .layout-heading-large-subline .area-heading h1,
    .layout-text .area-heading h2,
    .layout-heading-large-subline .area-heading h2,
    .layout-heading .area-heading h1,
    .layout-heading .area-heading h2,
    .layout-heading-subline .area-heading h2 {
        margin-bottom: 0 !important;
    }

    .layout-hero .area-heading {
        max-width: unset;
    }

    .layout-hero .area-heading p {
        max-width: calc(100% - 2 * (var(--single-col) + var(--grid-gap)));
    }

}

@media (min-width: 1024px) and (max-width: 1279px) {

    .layout-contact .area-heading {
        max-width: calc(100% - 1 * (var(--single-col) + var(--grid-gap)));
    }
}

@media (min-width: 1280px) {

    .layout-heading-large .area-heading p {
        max-width: calc(100% - 2 * (var(--single-col) + var(--grid-gap)));
    }

    /*.hero.cta .layout-hero .area-heading {
        max-width: calc(100% - (var(--single-col) + var(--grid-gap)));
    }*/
}

@media (max-width: 1023px) {

    .layout-cta .area-text {
        margin: auto;
        max-width: calc(100% - 2 * (var(--single-col) + var(--grid-gap)));
    }
}

/*  GRID CONTENT */
.grid-full-width {
    grid-column: full-width;
}

/*

@media (min-width: 768px) {

    .grid-heading {
        grid-column: 3 / 13;
    }
}*/

/*@media (min-width: 1024px) {}*/

/*@media (min-width: 1280px) {

    .grid-heading {
        grid-column: 4 / 12;
    }
}*/

/*@media (min-width: 1536px) {}*/

/* IMG */
.border-radius-8 {
    /*border-radius: var(--border-radius-8) !important;*/
    clip-path: inset(0 round var(--border-radius-8)) !important;
    /*overflow: hidden !important;*/
    /*fix*/
}

.ratio-9 img {
    aspect-ratio: 16 / 11;
    object-fit: cover;
    width: 100%;
}

.ratio-11 img {
    aspect-ratio: 16 / 11;
    object-fit: cover;
    width: 100%;
}

.ratio-15 img {
    aspect-ratio: 16 / 15;
    object-fit: cover;
    width: 100%;
}

.ratio-20 img {
    aspect-ratio: 16 / 11;
    object-fit: cover;
    width: 100%;
    /*border-radius: var(--border-radius-8);*/
}

@media (hover: hover) and (pointer: fine) {

    .hover-clip {
        clip-path: inset(0 0 0 0);
        transition: clip-path .6s ease-in-out !important;
    }

    .hover-clip:hover {
        clip-path: inset(var(--spacing-3));
    }

    .hover-scale {
        overflow: hidden;
    }

    .hover-scale img {
        transition: transform .4s ease-in-out !important;
    }

    .hover-scale:hover img {
        transform: scale(1.1);
    }
}

@media (min-width: 1024px) {

    .ratio-9 img {
        aspect-ratio: 16 / 9;
    }

    .ratio-20 img {
        aspect-ratio: 16 / 20;
    }
}

/* LINK */
a {
    color: var(--black);
    text-decoration: underline !important;
    text-decoration-color: var(--yellow) !important;
    text-underline-offset: 0.15em;
}

a:hover {
    color: var(--yellow) !important;
    /*text-decoration: underline;*/
}

.decoration-none a:hover,
a.decoration-none:hover {
    text-decoration: none !important;
}

.link-plain a:not(:hover),
a.link-plain:not(:hover) {
    color: var(--white) !important;
    text-decoration: none !important;
}

/* SECTION */
section.section {
    padding-block: var(--spacing-10) !important;
    /*background-color: var(--);*/
    row-gap: var(--spacing-10);
}

section.section.bg-black {
    background-color: var(--black);
}

section.section.bg-yellow {
    background-color: var(--yellow);
}

section.section.bg-yellow-light {
    background-color: var(--yellow-light);
}

section.section.bg-silver {
    background-color: var(--silver-light-100);
}

section.section.bg-black h1,
section.section.bg-black h2,
section.section.bg-black h3,
section.section.bg-black h4,
section.section.bg-black h5,
section.section.bg-black h6,
section.section.bg-black p,
section.section.bg-black ul,
section.section.bg-black ol {
    color: var(--white);
}

section.section.bg-silver .eyebrow p {
    color: var(--silver) !important;
}


/* MISC */
.text-center {
    text-align: center;
}

/*.text-right {
    text-align: right;
}

.align-items-end {
    align-items: end;
}*/

/*@media (max-width: 767px) {

    .xs-first-row {
        grid-row: 1;
    }
}*/

/* BUTTON */
a.elementor-button,
.form button {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    line-height: var(--line-height-headline) !important;
    font-size: var(--font-size-base);
    font-style: normal;
    color: var(--black) !important;
    text-decoration: none !important;
    padding: 0 var(--spacing-4);
    background-color: var(--yellow);
    border-radius: var(--border-radius-full);
    border: none;
    margin-block-start: var(--spacing-5);
    transition: outline 0s;
}

.form button {
    margin-block-start: calc(var(--spacing-5) - var(--spacing-4));
    flex-basis: fit-content !important;
}

a.elementor-button>.elementor-button-content-wrapper,
.form button>.elementor-button-content-wrapper {
    height: 56px;
    align-items: center;
    /*    gap: var(--spacing-2);*/
}

/*a.elementor-button span.elementor-button-icon {
    line-height: 0;
}

a.elementor-button span.elementor-button-icon svg {
    width: 24px !important;
}*/

a.elementor-button:hover,
a.elementor-button:active {
    background-color: var(--yellow-dark);
}

a.elementor-button:focus-visible {
    background-color: var(--yellow-dark);
    outline: 4px solid color-mix(in srgb, var(--yellow-dark) 30%, transparent);
}

.btn-black a.elementor-button {
    color: var(--white) !important;
    background-color: var(--black);
}

.btn-black a.elementor-button:hover,
.btn-black a.elementor-button:active,
.btn-outlined a.elementor-button:hover,
.btn-outlined a.elementor-button:active,
.form button:hover,
.form button:active {
    color: var(--white) !important;
    background-color: var(--black-700);
    border-color: var(--black-700) !important;
}

.btn-black a.elementor-button:focus-visible,
.btn-outlined a.elementor-button:focus-visible,
.form button:focus-visible {
    color: var(--white) !important;
    background-color: var(--black-700);
    outline: 4px solid color-mix(in srgb, var(--black-700) 30%, transparent);
}

.btn-outlined a.elementor-button,
.form button {
    background-color: transparent;
    border: 1px solid var(--black) !important;
}

.btn-outlined a.elementor-button>.elementor-button-content-wrapper,
.form button>.elementor-button-content-wrapper {
    height: 54px;
}

.btn-review {
    transform: translateY(-100%);
    z-index: 2;
    width: fit-content !important;
}

.mt-0 a.elementor-button {
    margin-block-start: 0;
}

.btn-group {
    flex-direction: row !important;
    align-items: flex-end;
    gap: var(--spacing-3);
}

.layout-cta .btn-group {
    justify-content: center;
}

.btn-group .elementor-widget-button:not(:first-child) a.elementor-button {
    margin-block-start: 0;
}

@media (max-width: 639px) {

    .btn-group .elementor-widget-button,
    .btn-group a.elementor-button {
        width: 100%;
    }
}

/* LIST */
.elementor-widget-text-editor ul {
    /*list-style-position: outside;*/
    list-style: none;
    padding-left: 0;
    margin-block-end: 1em;
}

.elementor-widget-text-editor ul li {
    position: relative;
    padding-left: calc(12px + 16px);
    margin-bottom: 2px;
}

.elementor-widget-text-editor ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 12px;
    height: 12px;
    border-radius: var(--border-radius-full);
    background: var(--yellow);
}

.elementor-widget-text-editor ul.list-large {
    margin-block: var(--spacing-5);
}

.elementor-widget-text-editor ul.list-large {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-2xl);
}

.elementor-widget-text-editor ul.list-large li {
    padding-left: calc(32px + 16px);
    margin-bottom: var(--spacing-2);
}

.elementor-widget-text-editor ul.list-large li::before {
    top: clamp(0px, calc((100vw - 390px) * 0.001046), 1.6px);
    width: 32px;
    height: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-size: 16px;
    background-repeat: no-repeat;
    background-position: center;
}

.info-box.elementor-widget-text-editor ul li {
    padding-left: calc(18px + 16px);
}

.info-box.elementor-widget-text-editor ul li::before {
    top: 0.35em;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-size: 12px;
    background-repeat: no-repeat;
    background-position: center;
}

/* GRID */
.auto-grid .elementor-grid,
.auto-grid.list-highlight ul,
.auto-grid.list-numbered ul,
.auto-grid.list-image .gallery {
    --auto-grid-gap-x: var(--grid-gap);
    /* calculations */
    --grid-col-size-calc: calc((100% - var(--auto-grid-gap-x) * var(--grid-max-col-count)) / var(--grid-max-col-count));
    --grid-col-min-size-calc: min(100%, max(var(--grid-min-col-size), var(--grid-col-size-calc)));
    /* setup */
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--grid-col-min-size-calc), 1fr));
}

/* EXAMPLE GRID */
.project-grid .elementor-grid {
    --auto-grid-gap-x: var(--spacing-6);
    --grid-max-col-count: 3;
    --grid-min-col-size: 348px;
    gap: var(--spacing-6) var(--grid-gap);
}

.team-grid .elementor-grid {
    --auto-grid-gap-x: var(--spacing-5);
    --grid-max-col-count: 4;
    --grid-min-col-size: 288px;
    gap: var(--spacing-5) var(--grid-gap);
}

.list-highlight ul,
.list-numbered ul {
    --auto-grid-gap-x: var(--spacing-5);
    --grid-max-col-count: 4;
    --grid-min-col-size: 334px;
    gap: var(--spacing-5) var(--spacing-7);
}

.list-image .gallery {
    --auto-grid-gap-x: var(--spacing-6);
    --grid-max-col-count: 4;
    --grid-min-col-size: 334px;
    gap: var(--spacing-6) var(--grid-gap);
}

@media (min-width: 768px) {

    .list-highlight ul,
    .list-numbered ul {
        --auto-grid-gap-x: var(--spacing-7) !important;
        gap: var(--spacing-7) var(--spacing-7);
    }

    .team-grid .elementor-grid {
        --auto-grid-gap-x: var(--spacing-6);
        gap: var(--spacing-6) var(--grid-gap);
    }
}

@media (min-width: 1024px) {

    .project-grid .elementor-grid,
    .list-image .gallery {
        --auto-grid-gap-x: var(--spacing-7) !important;
        gap: var(--spacing-7) var(--grid-gap);

    }

    .team-grid .elementor-grid {
        --auto-grid-gap-x: var(--spacing-7);
        gap: var(--spacing-7) var(--grid-gap);
    }
}

/* SWIPER */
.gallery:not(.grid-full-width) {
    border-radius: var(--border-radius-8);
    overflow: hidden;
}

.gallery .swiper {
    position: relative !important;
    padding-bottom: 0 !important;
}

.elementor-widget-image-carousel .swiper-slide {
    /*width: 100% !important;*/
}

.gallery .swiper-slide-inner {
    display: flex;
    line-height: 0 !important;
}

.gallery .swiper-pagination-bullet {
    width: 12px !important;
    height: 12px !important;
    background: var(--white) !important;
    /*border: 2px solid var(--);*/
    opacity: 0.5;
    margin: 0 !important;
}

.gallery .swiper-pagination-bullet.swiper-pagination-bullet-active {
    /*background: var(--) !important;*/
    opacity: 1;
}

.gallery .swiper-pagination {
    display: flex;
    gap: 12px;
    position: absolute;
    bottom: 0 !important;
    left: 0 !important;
    padding: var(--spacing-3);
    flex-wrap: wrap;
    pointer-events: none;
}

.gallery .elementor-swiper-button-prev,
.gallery .elementor-swiper-button-next svg {
    display: none !important;
}

.gallery .elementor-swiper-button-next {
    position: absolute !important;
    inset: 0 !important;
    transform: unset !important;
}

/* SKIP LINK */
a.skip-link.screen-reader-text:focus {
    top: 0 !important;
    height: auto !important;
    width: auto !important;
    margin: 0 !important;
    z-index: 999 !important;
    overflow: auto !important;
    clip: unset !important;
}

/* AOS */
[data-aos=fade-right] {
    transform: translate3d(-50px, 0, 0);
}

[data-aos=fade-left] {
    transform: translate3d(50px, 0, 0);
}

[data-aos=fade-up] {
    transform: translate3d(0, 30px, 0);
}

/* NAVBAR */
.navbar {
    background-color: var(--white);
    padding: var(--spacing-2) var(--grid-margin) !important;
    border-bottom: 1px solid color-mix(in srgb, var(--silver) 10%, transparent);
}

.navbar>.e-con-inner {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: var(--spacing-3);
}

.navbar .site-logo img {
    width: auto !important;
    height: 40px;
}

.navbar a.elementor-button {
    padding: 0 var(--spacing-3);
    margin: 0 !important;
}

.navbar a.elementor-button>.elementor-button-content-wrapper {
    height: 48px;
}

.navbar .btn-cta {
    margin-left: auto;
}

.navbar .btn-menu {
    height: 48px;
}

.navbar .btn-menu a.elementor-button {
    padding: 0 var(--spacing-1) !important;
    background-color: transparent;
}

.navbar .btn-menu a.elementor-button .elementor-button-icon svg {
    width: 32px !important;
    height: 32px !important;
}

.navbar.elementor-sticky--effects {
    background-color: color-mix(in srgb, var(--white) 70%, transparent);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

@media (min-width: 768px) {

    .navbar {
        padding: var(--spacing-3) var(--grid-margin) !important;
    }
}

@media (min-width: 1024px) {

    .navbar {
        padding: var(--spacing-3) var(--spacing-4) !important;
    }
}

@media (max-width: 639px) {

    .navbar .btn-cta {
        display: none;
    }
}

/* INFOBOX */
.info-box {
    background: var(--yellow-light);
    height: fit-content;
    border-radius: var(--border-radius-8);
    padding: var(--spacing-4) !important;
    position: sticky;
    top: calc(80px + var(--spacing-6));
}

@media (min-width: 768px) {

    .info-box {
        padding: var(--spacing-5) !important;
    }
}

/* HERO */
.hero {
    position: relative;
    min-height: fit-content;
    justify-content: flex-end;
    height: 650px;
    margin-top: -73px;
}

.hero.cta {
    margin-top: 0 !important;
}

.hero .hero-media,
.hero .hero-media * {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.hero .hero-media img,
.hero .hero-media video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--black-950) 60%, transparent);
    background: ;
    pointer-events: none;
    z-index: 1;
}

.referenzen-template-default .hero::before {
    background: var(--dimming-to-top) !important;
}

.hero .content-grid {
    padding: calc(72px + var(--spacing-9)) 0 var(--spacing-7) 0 !important;
    z-index: 2;
}

.hero.full-height .content-grid,
.hero.cta .content-grid {
    padding-block: var(--spacing-9) !important;
}

.hero h1,
.hero h2,
.hero h3,
.hero h4,
.hero h5,
.hero h6,
.hero p {
    color: var(--white);
    text-shadow: 0 0 24px color-mix(in srgb, var(--black-950) 60%, transparent);
}

.hero.cta h2 {
    margin-bottom: 0 !important;
}

@media (min-width: 768px) {

    .hero {
        height: 700px;
        margin-top: -81px;
    }

    .hero::before {
        background: var(--dimming);
    }

    .hero .content-grid {
        padding-top: calc(80px + var(--spacing-9)) !important;
    }
}

@media (min-width: 1024px) {

    .hero {
        height: 85svh;
    }

    .hero.full-height,
    .hero.cta {
        height: 100svh;
    }
}

/* PROJECT CARD */
.project-card {
    text-decoration: none !important;
}

.project-card .image-wrapper {
    position: relative;
    overflow: hidden;
    border-radius: var(--border-radius-8);
}

.project-card .category-badge,
.referenzen-template-default .hero .category-badge {
    position: absolute;
    top: var(--spacing-4);
    right: var(--spacing-4);
    background-color: var(--yellow);
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    height: 28px;
    display: flex;
    padding: 0 var(--spacing-2);
    border-radius: var(--border-radius-full);
    color: var(--black) !important;
}

.referenzen-template-default .hero .category-badge {
    position: unset;
    margin-right: var(--spacing-4);
}

.project-card .content-wrapper {
    margin-top: var(--spacing-4);
}

.project-card h3 {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-1) !important;
}

.project-card .project-details,
.referenzen-template-default .hero .project-details {
    flex-direction: row;
    align-items: center;
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    color: var(--silver-dark);
}

.referenzen-template-default .hero .project-details {
    color: var(--white);
    row-gap: var(--spacing-1);
}

.project-card .elementor-inline-items,
.project-card .elementor-icon-list-item,
.referenzen-template-default .hero .elementor-inline-items,
.referenzen-template-default .hero .elementor-icon-list-item,
    {
    margin: 0 !important;
}

.project-card .elementor-widget-shortcode,
.referenzen-template-default .hero .elementor-widget-shortcode {
    display: flex;
}

.project-card .elementor-widget-shortcode::after,
.referenzen-template-default .hero .elementor-widget-shortcode::after {
    content: '•';
    display: block;
    margin: 0 var(--spacing-3);
}

.project-card .elementor-widget-post-info {
    flex-shrink: 0;
}

/*@media (hover: hover) and (pointer: fine) {

    .project-card:hover h3 {
        color: var(--yellow) !important;
    }
}*/

/* FILTER TABS */
.filter-tabs .e-filter {
    justify-content: flex-start;
    gap: var(--spacing-2);
}

.filter-tabs .e-filter-item {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-base);
    color: var(--black);
    height: 48px;
    padding: 0 var(--spacing-4);
    border: 1px solid var(--silver-light) !important;
    border-radius: var(--border-radius-full);
    cursor: pointer;
}

.filter-tabs .e-filter-item:hover {
    background-color: var(--silver-light);
}

.filter-tabs .e-filter-item[aria-pressed=true] {
    background-color: var(--black);
    border-color: var(--black) !important;
    color: var(--white);
}

/* PROJECT DETAILS LIST */
.project-details-list {
    font-size: var(--font-size-base);
    border-bottom: 1px solid var(--silver-light);
}

.project-details-list dt {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    border-top: 1px solid var(--silver-light);
    padding-top: var(--spacing-3);
    margin-bottom: 4px;
}

.project-details-list dd {
    padding-bottom: var(--spacing-3);
}

@media (min-width: 768px) {

    .project-details-list {
        display: grid;
        grid-template-columns: auto 1fr;
    }

    .project-details-list dt,
    .project-details-list dd {
        padding: var(--spacing-4) 0;
        border-top: 1px solid var(--silver-light);
    }

    .project-details-list dt {
        margin-bottom: 0;
    }

    .project-details-list dd {
        padding-left: var(--spacing-8);
    }
}

/* PROJECT GALLERY */
.project-gallery .gallery {
    display: grid;
    gap: var(--spacing-4);
    align-items: center;
}

.project-gallery .gallery .gallery-item {
    border-radius: var(--border-radius-8);
    overflow: hidden;
}

@media (min-width: 768px) {

    .project-gallery .gallery {
        grid-template-columns: repeat(12, 1fr);
        gap: var(--spacing-8) var(--grid-gap);
    }

    .project-gallery .gallery-item:nth-child(3n+1) {
        grid-column: 1 / 13;
    }

    /* Doppel 6|6 */
    .project-gallery .gallery-item:nth-child(3n+2) {
        grid-column: 1 / 7;
    }

    .project-gallery .gallery-item:nth-child(3n+3) {
        grid-column: 7 / 13;
    }
}

@media (min-width: 1024px) {

    .project-gallery .gallery {
        gap: var(--spacing-9) var(--grid-gap);
    }

    /* Einzelfoto links */
    .project-gallery .gallery-item:nth-child(18n+1) {
        grid-column: 1 / 11;
    }

    /* Doppel 6|5 */
    .project-gallery .gallery-item:nth-child(18n+2) {
        grid-column: 1 / 7;
    }

    .project-gallery .gallery-item:nth-child(18n+3) {
        grid-column: 8 / 13;
    }

    /* Einzelfoto mitte */
    .project-gallery .gallery-item:nth-child(18n+4) {
        grid-column: 2 / 12;
    }

    /* Doppel 5|6 */
    .project-gallery .gallery-item:nth-child(18n+5) {
        grid-column: 1 / 6;
    }

    .project-gallery .gallery-item:nth-child(18n+6) {
        grid-column: 7 / 13;
    }

    /* Einzelfoto rechts */
    .project-gallery .gallery-item:nth-child(18n+7) {
        grid-column: 3 / 13;
    }

    /* Doppel 6|5 */
    .project-gallery .gallery-item:nth-child(18n+8) {
        grid-column: 1 / 7;
    }

    .project-gallery .gallery-item:nth-child(18n+9) {
        grid-column: 8 / 13;
    }

    /* Einzelfoto links */
    .project-gallery .gallery-item:nth-child(18n+10) {
        grid-column: 1 / 11;
    }

    /* Doppel 5|6 */
    .project-gallery .gallery-item:nth-child(18n+11) {
        grid-column: 1 / 6;
    }

    .project-gallery .gallery-item:nth-child(18n+12) {
        grid-column: 7 / 13;
    }

    /* Einzelfoto mitte */
    .project-gallery .gallery-item:nth-child(18n+13) {
        grid-column: 2 / 12;
    }

    /* Doppel 6|5 */
    .project-gallery .gallery-item:nth-child(18n+14) {
        grid-column: 1 / 7;
    }

    .project-gallery .gallery-item:nth-child(18n+15) {
        grid-column: 8 / 13;
    }

    /* Einzelfoto rechts */
    .project-gallery .gallery-item:nth-child(18n+16) {
        grid-column: 3 / 13;
    }

    /* Doppel 5|6 */
    .project-gallery .gallery-item:nth-child(18n+17) {
        grid-column: 1 / 6;
    }

    .project-gallery .gallery-item:nth-child(18n+18) {
        grid-column: 7 / 13;
    }
}

/* PROJECT SLIDER */
.project-slider .elementor-swiper-button {
    width: 56px;
    height: 56px;
    display: flex !important;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--black) !important;
    border-radius: var(--border-radius-full);
    color: var(--black) !important;
    transform: unset !important;
    top: unset !important;
    left: unset !important;
}

.project-slider .elementor-swiper-button:not(.swiper-button-disabled):hover {
    background-color: var(--black-700);
    border-color: var(--black-700) !important;
    color: var(--white) !important;
}

.project-slider .elementor-swiper-button.swiper-button-disabled {
    /*display: none;*/
}

.project-slider .elementor-swiper-button svg {
    fill: none !important;
    width: 24px !important;
    height: 24px !important;
}

.project-slider .elementor-swiper-button {
    bottom: 0 !important;
    right: 0 !important;
    transform: translateY(calc(100% + var(--spacing-7))) !important
}

.project-slider .elementor-swiper-button-prev {
    transform: translate(-64px, calc(100% + var(--spacing-7))) !important;
}

@media (min-width: 768px) {

    .project-slider .swiper-slide {
        width: auto !important;
        max-width: calc((100% - var(--grid-gap) * 1) / 2);
    }
}

@media (min-width: 1280px) {

    .project-slider .swiper-slide {
        max-width: calc((100% - var(--grid-gap) * 2) / 3);
    }
}

/* GRID LIST */
.list-highlight ul,
.list-numbered ul {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-2xl);
    margin-block-end: 0;
    hyphens: none;
}

.list-numbered ul {
    counter-reset: section;
}

.list-highlight ul li {
    padding-left: calc(var(--spacing-4) + 2px);
    margin-bottom: 0;
}

.list-numbered ul li {
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.list-highlight ul li::before {
    top: unset;
    width: 2px;
    height: 100%;
    border-radius: unset;
}

.list-numbered ul li::before {
    content: '';
    counter-increment: section;
    content: counter(section, decimal-leading-zero);
    position: unset;
    display: block;
    top: unset;
    width: unset;
    height: unset;
    border-radius: unset;
    background-color: transparent;
    font-size: var(--font-size-4xl);
    color: var(--yellow);
    line-height: 1;
}

.list-image .gallery-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4);
}

.list-image .gallery-item img {
    aspect-ratio: 16 / 11;
    border-radius: var(--border-radius-8);
}

.list-image .gallery-item figcaption {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-2xl);
    text-align: left !important;
    line-height: 1.3 !important;
}

.list-timeline ul {
    margin-block-end: 0;
    counter-reset: section;
}

.list-timeline ul li {
    margin: 0;
    margin-left: 24px;
    padding-left: calc(var(--spacing-4) + 24px);
}

.list-timeline ul li:not(:last-child) {
    padding-bottom: var(--spacing-7);
    border-left: 1px solid var(--black);
}

.list-timeline ul li::before {
    content: '';
    counter-increment: section;
    content: counter(section, decimal-leading-zero);
    /*position: unset;*/
    display: flex;
    justify-content: center;
    align-items: center;
    top: unset;
    width: 48px;
    height: 48px;
    background-color: var(--black);
    font-size: var(--font-size-base);
    color: var(--white);
    transform: translateX(-50%);
}

.list-timeline h3 {
    font-size: var(--font-size-3xl);
    margin-bottom: var(--spacing-1) !important;
}

@media (min-width: 768px) {

    .list-timeline ul li {
        padding-left: calc(var(--spacing-6) + 24px);
    }
}

@media (min-width: 1280px) {

    .list-timeline ul li {
        max-width: calc(4 * var(--single-col) + 3 * var(--grid-gap));
    }
}

/* ACCORDION */
.accordion .e-n-accordion-item-title,
.accordion h3.ae-tab-title {
    display: flex;
    border: none;
    border-top: 1px solid var(--silver-light-300);
    padding: var(--spacing-4) 0;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-3);
}

.accordion .ae-accordion-item {
    border-top: 1px solid var(--silver-light-300) !important;
}

.accordion .e-n-accordion-item:last-child,
.accordion .ae-accordion-item:last-child {
    border-bottom: 1px solid var(--silver-light-300) !important;
}

.accordion .e-n-accordion-item-title h3,
.accordion h3.ae-tab-title {
    font-size: var(--font-size-2xl) !important;
    font-weight: var(--font-weight-headline) !important;
    margin-bottom: 0 !important;
    line-height: 1.3 !important;
}

.accordion h3.ae-tab-title {
    flex-direction: row-reverse !important;
    border: none !important;
}

.accordion h3.ae-tab-title a {
    color: var(--black) !important;
    text-decoration: none !important;
}

.accordion .e-n-accordion-item-title-icon,
.accordion .ae-accordion-icon {
    display: flex !important;
    width: 48px !important;
    height: 48px !important;
    background-color: var(--yellow);
    border-radius: var(--border-radius-full);
    justify-content: center;
    align-items: center;
    transition: transform 0.25s ease-in-out;
    flex-shrink: 0;
}

.accordion .e-n-accordion-item-title-icon span,
.accordion .ae-accordion-icon span {
    height: 24px !important;
}

.accordion .e-n-accordion-item-title-icon svg,
.accordion .ae-accordion-icon svg {
    width: 24px !important;
    height: 24px !important;
    color: var(--black);
}

.accordion .e-n-accordion-item-title[aria-expanded="true"] .e-n-accordion-item-title-icon,
.accordion h3.ae-tab-title.ae-active .ae-accordion-icon {
    transform: rotate(45deg);
}

.accordion .e-n-accordion-item .elementor-element[role="region"],
.accordion .ae-accordion-item .ae-tab-content {
    padding: 0 !important;
    padding-bottom: var(--spacing-4) !important;
}

.accordion .ae-accordion-item .ae-tab-content p:empty {
    display: none !important;
}

.accordion .ae-accordion-item .ae-tab-content p:nth-last-child(2) {
    margin-bottom: 0 !important;
}

@media (hover: hover) and (pointer: fine) {

    .accordion .e-n-accordion-item:hover .e-n-accordion-item-title h3,
    .accordion h3.ae-tab-title:hover a {
        color: var(--silver) !important;
    }
}

/* SIDEBARS */
.navigation-sidebar,
.appointment-sidebar {
    background-color: color-mix(in srgb, var(--black-950) 50%, transparent);
}

.navigation-sidebar .dialog-widget-content {
    box-shadow: none;
    width: 100%;
    background-color: var(--black);
}

.appointment-sidebar .dialog-widget-content {
    background-color: var(--white);
}

.navigation-sidebar .dialog-message,
.appointment-sidebar .dialog-message {
    width: 100% !important;
}

.navigation-sidebar .sidebar-content,
.appointment-sidebar .sidebar-content {
    padding: var(--spacing-6) !important;
}

.navigation-sidebar .sidebar-content>.e-con-inner,
.appointment-sidebar .sidebar-content>.e-con-inner {
    row-gap: var(--spacing-7);
}

.navigation-sidebar .dialog-close-button,
.appointment-sidebar .dialog-close-button {
    width: 48px;
    height: 48px;
    background-color: var(--silver-light-700);
    border-radius: var(--border-radius-full);
    justify-content: space-around;
    align-items: center;
    top: var(--spacing-6);
    right: var(--spacing-6);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
    background-position: center;
    background-size: 24px;
    background-repeat: no-repeat;
    outline: none;
}

.appointment-sidebar .dialog-close-button {
    background-color: var(--silver-light-300);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
}

.navigation-sidebar .dialog-close-button:hover {
    background-color: var(--silver-light-600);
}

.appointment-sidebar .dialog-close-button:hover {
    background-color: var(--silver-light-400);
}

.navigation-sidebar .dialog-close-button svg,
.appointment-sidebar .dialog-close-button svg {
    display: none;
}

/* APPOINTMENT SIDEBAR */

.appointment-sidebar .headline {
    height: 48px;
    display: flex;
    align-items: center;
}

/* NAVIGATION SIDEBAR */
.navigation-sidebar .logo-mark {
    color: var(--yellow);
    line-height: 1;
    margin-top: var(--spacing-1);
}

.navigation-sidebar .logo-mark svg {
    width: 32px;
    height: auto;
}

.navigation-sidebar a.elementor-button {
    width: 100%;
}

.navigation-sidebar .navigation ul.uc-list-menu {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-3);
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-3xl);
    line-height: 1.2 !important;
    color: var(--white);
    text-decoration: none !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: var(--spacing-3);
    min-height: 38px;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a .uc-menu-item-pointer {
    filter: brightness(0) invert(1);
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a:hover,
.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a.expanded,
.navigation-sidebar .navigation ul.uc-list-menu li.menu-item.current-menu-item a {
    color: var(--yellow) !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a:hover .uc-menu-item-pointer,
.navigation-sidebar .navigation ul.uc-list-menu li.menu-item a.expanded .uc-menu-item-pointer {
    filter: unset;
}

.navigation-sidebar .navigation .uc-side-menu-items {
    overflow-y: hidden;
}

/* 2nd level */

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu {
    display: flex !important;
    flex-direction: column;
    gap: var(--spacing-4);
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item:first-child {
    margin-top: var(--spacing-3) !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item:last-child {
    margin-bottom: var(--spacing-4) !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item {
    padding-left: var(--spacing-4) !important;
    position: relative;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item a {
    font-size: var(--font-size-xl);
    min-height: unset;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item a.expanded {
    color: var(--white) !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item a.expanded .uc-menu-item-pointer {
    filter: brightness(0) invert(1);
}


.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item a.expanded::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    background-color: var(--yellow);
}

/* 3rd level */

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu {
    gap: var(--spacing-3);
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu[data-collapsed="false"] {
    /*padding: var(--spacing-3) 0 var(--spacing-1) 0 !important;*/
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu li.menu-item {
    padding-left: 0 !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu li.menu-item:last-child {
    margin-bottom: 0 !important;
}

.navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu li.menu-item a:not(:hover) {
    color: var(--silver-light-400);
}

.sub-menu[data-collapsed="true"] {
    transition: none !important;
}

.sub-menu[data-collapsed="false"] {
    transition: height 0.3s ease;
}

@media (min-width: 768px) {

    .navigation-sidebar .dialog-widget-content,
    .appointment-sidebar .dialog-widget-content {
        width: 50%;
        min-width: 500px;
    }
}

@media (min-width: 1024px) {

    .navigation-sidebar .dialog-widget-content,
    .appointment-sidebar .dialog-widget-content {
        max-width: 700px
    }

    .navigation-sidebar .navigation ul.uc-list-menu {
        gap: var(--spacing-4);
    }

    .navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item:first-child {
        margin-top: var(--spacing-4) !important;
    }
}

@media (min-width: 1280px) {

    .navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item:first-child {
        margin-top: var(--spacing-5) !important;
    }

    .navigation-sidebar .navigation ul.uc-list-menu li.menu-item ul.sub-menu li.menu-item ul.sub-menu li.menu-item:first-child {
        margin-top: var(--spacing-4) !important;
    }
}

/* TEAM CARD */
.team-card .image-wrapper {
    overflow: hidden;
    border-radius: var(--border-radius-8);
}

.team-card .image-wrapper img {
    aspect-ratio: 16 / 20;
}

.team-card h3 {
    font-size: var(--font-size-2xl) !important;
    margin: var(--spacing-4) 0 var(--spacing-1) 0 !important;
}

.team-card,
.team-card p {
    font-size: var(--font-size-base) !important;
}

.team-card .job-title {
    margin-bottom: var(--spacing-3) !important;
}

.team-card .job-title p {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    color: var(--silver-dark);
}

.team-card .linkedin {
    display: block;
    margin-top: var(--spacing-3);
}

/* CTA CARD */
.cta-card {
    position: relative;
    border-radius: var(--border-radius-8);
    overflow: hidden;
}

.cta-card::after {
    content: '';
    position: absolute;
    top: var(--spacing-4);
    right: var(--spacing-4);
    width: 48px;
    height: 48px;
    background-color: var(--yellow);
    border-radius: var(--border-radius-full);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
    background-position: center;
    background-size: 24px;
    background-repeat: no-repeat;
    pointer-events: none;
    transition: transform 0.4s ease-in-out;
}

.cta-card:hover::after {
    transform: rotate(90deg);
}

.cta-card .image-wrapper {
    height: 100%;
}

.cta-card img {
    aspect-ratio: 16 / 11;
    height: 100%;
    object-fit: cover;
}

.cta-card .content-wrapper {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: var(--spacing-10) var(--spacing-4) var(--spacing-4) var(--spacing-4) !important;
    background: var(--dimming-to-top);
}

.cta-card h3 {
    margin-bottom: 0.5em !important;
    color: var(--white);
}

.cta-card p {
    color: var(--white);
    text-wrap: balance;
}

.cta-grid .elementor-grid {
    gap: var(--spacing-3);
}

@media (max-width: 639px) {

    .cta-card p {
        font-size: var(--font-size-sm) !important;
    }
}

@media (min-width: 768px) {

    .cta-card::after {
        top: var(--spacing-5);
        right: var(--spacing-5);
    }

    .cta-card .content-wrapper {
        padding: var(--spacing-10) var(--spacing-5) var(--spacing-5) var(--spacing-5) !important;
    }

    .cta-card p {
        max-width: 550px;
    }
}

@media (min-width: 1024px) {

    .cta-grid .elementor-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(7, 1fr);
    }

    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(1) {
        grid-column: 1;
        grid-row: 1 / 5;
    }

    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(2) {
        grid-column: 2;
        grid-row: 1 / 4;
    }

    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(3) {
        grid-column: 1;
        grid-row: 5 / 8;
    }

    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(4) {
        grid-column: 2;
        grid-row: 4 / 8;
    }

    .cta-grid .elementor-loop-container>.e-loop-item,
    .cta-grid .elementor-loop-container>.e-loop-item .cta-card,
    .cta-grid .elementor-loop-container>.e-loop-item .e-con-inner {
        height: 100% !important;
    }

    .cta-card img {
        aspect-ratio: unset;
    }

    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(2) .cta-card img,
    .cta-grid .elementor-loop-container>.e-loop-item:nth-of-type(3) .cta-card img {
        aspect-ratio: 16/9;
    }
}

@media (min-width: 1280px) {

    .cta-card .content-wrapper {
        padding: var(--spacing-10) var(--spacing-6) var(--spacing-6) var(--spacing-6) !important;
    }
}

/* SERVICE CARD */
.service-card>.e-con-inner {
    flex-direction: row !important;
    gap: var(--spacing-3);
    align-items: center !important;
}

.service-card .icon-wrapper {
    width: 48px;
    height: 48px;
    background: color-mix(in srgb, var(--yellow) 20%, transparent);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--border-radius-full);
}

.service-card h3 {
    font-size: var(--font-size-xl) !important;
    color: var(--white) !important;
    margin-bottom: 0 !important;
}

.services-slider {
    background-color: var(--black);
    padding: var(--spacing-4) 0;
}

.services-slider>.elementor-widget-container {
    display: block;
    overflow: hidden;
}

.services-slider .elementor-grid {
    display: flex !important;
    flex-direction: row !important;
    gap: var(--spacing-6);
    width: max-content;
    justify-self: center;
}

.services-slider[data-animated="true"] .elementor-grid {
    justify-self: unset;
    animation: scroll 30s linear infinite;
}

@keyframes scroll {
    to {
        transform: translate(calc(-50% - (var(--spacing-6) / 2)));
    }
}

/* FACTS */
.fact-card .icon-wrapper {
    width: 48px;
    height: 48px;
    background: color-mix(in srgb, var(--yellow) 20%, transparent);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--border-radius-full);
    margin-bottom: var(--spacing-4) !important;
}

.fact-card h3 {
    font-size: var(--font-size-2xl) !important;
    margin-bottom: var(--spacing-1) !important;
}

.fact-card p {
    font-size: var(--font-size-base) !important;
}

.facts-grid {
    display: grid;
    gap: var(--spacing-5) var(--spacing-7);
}

@media (min-width: 768px) {

    .facts-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-7) var(--spacing-7);
    }
}

@media (min-width: 1280px) {

    .facts-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ICON LIST ELEMENT */
.icon-list-element {
    text-decoration: none !important;
}

.icon-list-element>.e-con-inner {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: var(--spacing-4);
    padding: var(--spacing-4) 0 !important;
    border-top: 1px solid var(--silver-light-300);
}

.icon-list-element h2 {
    font-size: var(--font-size-2xl) !important;
    margin-bottom: 0 !important;
}

.icon-list-element .icon-wrapper {
    width: 48px;
    height: 48px;
    background-color: var(--yellow);
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--border-radius-full);
    flex-shrink: 0;
    color: var(--black) !important;
}

.icon-list-grid .elementor-grid {
    gap: 0 !important;
}

.icon-list-grid .e-loop-item:last-child .icon-list-element {
    border-bottom: 1px solid var(--silver-light-300);
}

@media (hover: hover) and (pointer: fine) {

    .icon-list-element:hover h2 {
        color: var(--silver);
    }
}

/* JOB DETAILS */
.job-details {
    flex-direction: row;
    align-items: center;
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    color: var(--silver-dark);
}

.job-details .elementor-inline-items,
.job-details .elementor-icon-list-item {
    margin: 0 !important;
}

.job-details .elementor-icon-list-item:first-child::after {
    content: '•';
    display: block;
    margin: 0 var(--spacing-3);
    border: none !important;
    inset-inline: 0 !important;
}

/* CONTACT & FORM */
.contact-details {
    display: grid;
    gap: var(--spacing-6) var(--grid-gap);
}

.contact-details h3 {
    font-size: var(--font-size-lg) !important;
}

.contact-details p {
    font-size: var(--font-size-base) !important;
}

.form-wrapper {
    padding: var(--spacing-4) !important;
    background-color: var(--silver-light-100);
    border-radius: var(--border-radius-8);
}

.form-wrapper h3 {
    font-size: var(--font-size-2xl) !important;
    margin-bottom: 1.333em !important;
}

.form .elementor-form-fields-wrapper {
    gap: var(--spacing-4);
    margin: 0 !important;
}

.form .elementor-field-group {
    padding: 0 !important;
    margin: 0 !important;
}

.form label {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-base);
    margin-bottom: 4px;
}

.form label:after {
    color: var(--black) !important;
}

.form input,
.form textarea {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-base);
    font-size: var(--font-size-base);
    color: var(--black) !important;
    min-height: 56px;
    border: none !important;
    border-radius: var(--border-radius-8);
    padding: 15px var(--spacing-3) !important;
    background-color: var(--white) !important;
}

.form textarea {
    resize: none;
}

.form input:focus,
.form textarea:focus {
    box-shadow: none !important;
    outline: 2px solid var(--black) !important;
}

.form .elementor-field-type-acceptance input {
    display: none !important;
}

.form .elementor-field-type-acceptance label {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-base);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base) !important;
    display: block !important;
    margin: 0 !important;
}

.form .elementor-message {
    margin: var(--spacing-5) 0 0 0 !important;
    font-size: var(--font-size-base) !important;
    font-family: var(--font-family-headline) !important;
    font-weight: var(--font-weight-headline) !important;
}

.form .elementor-message-success {
    color: #008a20 !important;
}

@media (min-width: 768px) {

    .contact-details {
        grid-template-columns: repeat(2, 1fr);
    }

    .form-wrapper {
        padding: var(--spacing-6) !important;
    }
}

/* REVIEWS */
.reviews .owl-stage {
    display: flex !important;
    align-items: stretch !important;
}

.reviews .ue-google-reviews__item {
    background-color: var(--white) !important;
    padding: var(--spacing-4) !important;
    border-radius: var(--border-radius-8) !important;
    gap: var(--spacing-3) !important;
    height: 100% !important;
}

.reviews .ue-google-reviews__item-image,
.reviews .ue-google-reviews__item-img {
    width: 48px !important;
    height: 48px !important;
}

.reviews .ue-google-reviews__item-header {
    gap: var(--spacing-3) !important;
}

.reviews .ue-google-reviews__item-author-name {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-lg);
    line-height: var(--line-height-headline) !important;
    color: var(--black) !important;
    margin-bottom: 2px !important;
}

.reviews .ue-google-reviews__item-time-ago {
    color: var(--silver) !important;
}

.reviews .ue-google-reviews__item-stars {
    gap: 4px !important;
}

.reviews .ue_rate svg {
    width: 16px !important;
    height: 16px !important;
}

.reviews .ue-google-reviews__item-text-item {
    font-size: var(--font-size-base) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 6 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.reviews .owl-dots {
    display: none !important;
}

.reviews .owl-nav {
    display: flex !important;
    gap: var(--spacing-1) !important;
    margin-top: var(--spacing-7) !important;
    justify-content: flex-end !important;
}

.reviews .owl-nav button {
    position: unset !important;
    width: 56px !important;
    height: 56px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    border: 1px solid var(--black) !important;
    border-radius: var(--border-radius-full) !important;
    color: var(--black) !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E") !important;
    background-position: center !important;
    background-size: 24px !important;
    background-repeat: no-repeat !important;
}

.reviews .owl-nav button.owl-next {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23181C1C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") !important;
}

.reviews .owl-nav button:hover {
    background-color: var(--black-700) !important;
    border-color: var(--black-700) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 19-7-7 7-7'/%3E%3Cpath d='M19 12H5'/%3E%3C/svg%3E") !important;
}

.reviews .owl-nav button.owl-next:hover {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") !important;
}

@media (min-width: 768px) {

    .reviews .ue-google-reviews__item {
        padding: var(--spacing-5) !important;
    }
}

/* FOOTER */
.footer {
    background-color: var(--black);
    padding: var(--spacing-9) 0 var(--spacing-7) 0 !important;
}

.footer>.e-con-inner {
    row-gap: var(--spacing-9) !important;
}

.footer h2,
.footer h3,
.footer p {
    color: var(--white) !important;
}

.footer .social-wrapper {
    gap: var(--spacing-7);
}

.footer .social-wrapper h3 {
    font-size: var(--font-size-lg) !important;
    margin-bottom: 0.888em !important;
}

.footer .elementor-social-icons-wrapper {
    display: flex;
    gap: var(--spacing-3);
    justify-content: flex-start !important;
    flex-wrap: wrap;
}

.footer .social-icons a.elementor-icon {
    width: 56px;
    height: 56px;
    background-color: color-mix(in srgb, var(--yellow) 20%, transparent);
    border-radius: var(--border-radius-full);
    color: var(--yellow) !important;
    opacity: 1 !important;
}

.footer .social-icons a.elementor-icon:hover {
    background-color: color-mix(in srgb, var(--yellow) 40%, transparent)
}

.footer .contact-details {
    grid-template-columns: repeat(2, 1fr);
}

.footer .form-footer .elementor-form-fields-wrapper {
    margin: 0 !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
}

.footer .form-footer .elementor-field-group {
    padding: 0 !important;
    margin: 0 !important;
}

.footer .form-footer .elementor-field-group.elementor-field-type-submit {
    width: fit-content !important;
}

.footer .form-footer input {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-base);
    color: var(--white) !important;
    height: 56px;
    border: none !important;
    border-radius: var(--border-radius-8) 0 0 var(--border-radius-8);
    padding: 15px var(--spacing-3) !important;
    background-color: color-mix(in srgb, var(--white) 10%, transparent) !important;
    box-shadow: none !important;
}

.footer .form-footer input::placeholder {
    opacity: 1;
    color: var(--silver);
}

.footer .form-footer button {
    width: 56px;
    height: 56px;
    flex-basis: auto !important;
    background-color: color-mix(in srgb, var(--white) 10%, transparent);
    border-radius: 0 var(--border-radius-8) var(--border-radius-8) 0;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    cursor: pointer;
}

.footer .form-footer button:hover {
    background-color: color-mix(in srgb, var(--white) 15%, transparent);
}

.footer .form-footer button svg {
    width: 24px;
    height: 24px;
}

.footer .form-footer button svg path {
    fill: none !important;
}

.footer .form-footer .elementor-message {
    display: none !important;
}

.footer .meta {
    padding-top: var(--spacing-6) !important;
    border-top: 1px solid color-mix(in srgb, var(--white) 10%, transparent);
}

.footer .navigation ul {
    display: flex;
    list-style: none;
    gap: var(--spacing-1) var(--spacing-4);
    flex-wrap: wrap;
    font-size: var(--font-size-sm) !important;
}

@media (min-width: 1024px) {

    .footer .contact-details {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* BLOG */
.blog-grid .elementor-grid {
    gap: var(--spacing-6) var(--grid-gap);
}

.blog-card {
    text-decoration: none !important;
}

.blog-card>.e-con-inner {
    gap: var(--spacing-3) !important;
}

.blog-card .image-wrapper {
    position: relative;
    overflow: hidden;
    border-radius: var(--border-radius-8);
}

.blog-card h2 {
    font-size: var(--font-size-2xl) !important;
    margin-bottom: 0 !important;
}

.blog-card .elementor-widget-post-info {
    font-family: var(--font-family-headline);
    font-weight: var(--font-weight-headline);
    font-size: var(--font-size-sm);
    color: var(--silver-dark);
    margin-bottom: var(--spacing-1) !important;
}

.blog-content .ae-acf-fc-collection {
    gap: var(--spacing-8) !important;
}

@media (min-width: 768px) {

    .blog-grid .elementor-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {

    .blog-grid .elementor-grid {
        gap: var(--spacing-7) var(--grid-gap);
    }
}

/* LOGO GRID */
.logo-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-6) var(--spacing-9);
}

.logo-grid>.elementor-element {
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.logo-grid a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.logo-grid a img {
    max-width: 100%;
    max-height: 100%;
    width: auto !important;
    height: auto;
}

.logo-grid a:hover {
    opacity: 0.5;
}

@media (min-width: 640px) {

    .logo-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 768px) {

    .logo-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (min-width: 1280px) {

    .logo-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media (min-width: 1536px) {

    .logo-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

/* COPYRIGHT */
.gallery .elementor-image-carousel figcaption,
.elementor-widget-image figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    font-size: 11px;
    color: color-mix(in srgb, var(--white) 60%, transparent);
    text-align: right !important;
    width: 100%;
    line-height: 1;
    padding: var(--spacing-1);
    pointer-events: none;
}