/*
Theme Name: Archicon Child
Theme URI: https://archicon.qodeinteractive.com
Description: A child theme of Archicon
Author: Edge Themes
Author URI: https://qodeinteractive.com
Version: 1.0
Text Domain: archicon
Template: archicon
*/

@font-face {
    font-family: "Space Grotesk";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url("assets/fonts/space-grotesk/space-grotesk-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Space Grotesk";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url("assets/fonts/space-grotesk/space-grotesk-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Brand orange comes from the Elementor variable geoanda-orange */
body {
    --qode-main-color: var(--geoanda-orange, #DB5C35);
    --e-global-color-v4-geoanda-orange: var(--geoanda-orange, #DB5C35);
}

/* Colour test: any page with ?boja=nova */
body.geo-boja-nova {
    --geoanda-orange: #FF5215;
}

.geoanda-contact-form {
    & .wpcf7-form-control.wpcf7-submit {
        margin-block: 30px;
    }

    & label {
        display: block;
        margin: 0 0 34px;
        font-size: 20px;
        line-height: 1.4;
        letter-spacing: -0.01em;
    }

    & .wpcf7-form-control-wrap {
        display: block;
    }

    & input[type=text],
    & input[type=email],
    & input[type=tel],
    & textarea {
        margin: 6px 0 0;
        padding: 10px 0;
        background-color: transparent;
        border-bottom: 1px solid var(--geoanda-orange, #DB5C35);
        font-size: 18px;
        color: #000;
        cursor: text;
    }

    & input[type=text]:focus,
    & input[type=email]:focus,
    & input[type=tel]:focus,
    & textarea:focus {
        padding-bottom: 9px;
        border-bottom-width: 2px;
        border-color: var(--geoanda-orange, #DB5C35);
    }

    & textarea {
        height: 120px;
        resize: vertical;
    }

    & .wpcf7-acceptance .wpcf7-list-item {
        margin-left: 0;
    }

    & .wpcf7-acceptance label {
        display: flex;
        gap: 12px;
        align-items: flex-start;
        margin: 0;
        font-size: 15px;
        line-height: 1.5;
    }

    & .wpcf7-acceptance input {
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        margin-top: 2px;
        accent-color: var(--geoanda-orange, #DB5C35);
    }

    /* Message below the form after submitting */
    & .wpcf7 form .wpcf7-response-output {
        margin-inline: 0;
    }

    & .wpcf7 form.spam .wpcf7-response-output {
        border-color: #ffb900;
    }
}

/* Filled buttons in the site orange */
.qodef-button.qodef-layout--filled,
.qodef-button.qodef-layout--filled:hover {
    background-color: var(--geoanda-orange, #DB5C35);
}

.qodef-button.qodef-layout--filled .qodef-m-reveal,
.qodef-button.qodef-layout--filled::before {
    background-color: color-mix(in srgb, var(--geoanda-orange, #DB5C35) 75%, #000);
}

/* Kontakt form title with arrow */
.elementor-column:has(.geoanda-form-title) {
    z-index: 1;
}

.elementor .geoanda-form-title {
    --geo-arrow-width: 180px;

    & .qodef-m-title {
        margin: 0;
        font-size: 76px;
        line-height: 1.05;
        font-weight: 400;
        letter-spacing: -0.01em;
        text-transform: uppercase;
        color: #FFFFFF;
    }

    & .qodef-m-highlight-text {
        display: flex;
        gap: 90px;
        align-items: center;
        line-height: inherit;
    }

    & .qodef-m-highlight-text .qodef--original {
        clip-path: none;
    }

    & .qodef-m-highlight-text .qodef--fake {
        display: none;
    }

    & .qodef-m-highlight-text::after {
        content: '';
        flex: 1;
        min-width: calc(var(--geo-arrow-width) + 40px);
        height: 76px;
        margin-right: calc(-1 * var(--geo-arrow-width));
        --geo-arrow-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 76' fill='none' stroke='%23000' stroke-width='12'%3E%3Cpath d='M0 38H168M138 6l32 32-32 32'/%3E%3C/svg%3E");
        background:
            linear-gradient(var(--geoanda-orange, #DB5C35) 0 0) right center / var(--geo-arrow-width) 76px no-repeat,
            linear-gradient(color-mix(in srgb, var(--geoanda-orange, #DB5C35) 15%, #fff) 0 0) left center / calc(100% - var(--geo-arrow-width)) 12px no-repeat;
        -webkit-mask:
            var(--geo-arrow-shape) right center / var(--geo-arrow-width) 76px no-repeat,
            linear-gradient(#000 0 0) left center / calc(100% - var(--geo-arrow-width)) 12px no-repeat;
        mask:
            var(--geo-arrow-shape) right center / var(--geo-arrow-width) 76px no-repeat,
            linear-gradient(#000 0 0) left center / calc(100% - var(--geo-arrow-width)) 12px no-repeat;
    }

    @media (max-width: 1440px) {
        & .qodef-m-title {
            font-size: 62px;
        }
    }

    @media (max-width: 1024px) {
        & .qodef-m-title {
            font-size: 54px;
        }

        & .qodef-m-highlight-text::after {
            display: none;
        }
    }

    @media (max-width: 767px) {
        & .qodef-m-title {
            font-size: 40px;
        }
    }
}

.elementor .elementor-element.geoanda-form-intro {
    max-width: 380px;
    margin-top: 60px;
    font-size: 20px;
    line-height: 1.5;
    font-weight: 500;
    color: #FFFFFF;

    & p {
        margin: 0;
        font: inherit;
        color: inherit;
    }

    @media (max-width: 767px) {
        margin-top: 30px;
        font-size: 18px;
    }
}

.geoanda-footer-contact {
    line-height: 33px;
}

/* Kontakt hero contact details */
.elementor .geoanda-hero-contact {
    font-family: inherit;

    & p {
        margin: 0 0 6px;
        font-size: 14px;
        line-height: 20px;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: #707070;
    }

    & a {
        display: block;
        margin-bottom: 22px;
        font-size: 22px;
        line-height: 30px;
        color: #000;
    }

    & a:last-child {
        margin-bottom: 0;
    }

    /* Several phone numbers */
    & a + br {
        display: none;
    }

    & a:hover {
        color: var(--geoanda-orange, #DB5C35);
    }
}

/* Orange underlined Section Title */
.elementor .geoanda-underline-title .qodef-m-title-inner {
    text-decoration: underline;
    text-decoration-color: var(--geoanda-orange, #DB5C35);
    text-decoration-thickness: 3px;
    text-underline-offset: 8px;
}

/* Hero scroll arrow */
.elementor-column:has(> .elementor-widget-wrap > .geoanda-hero-arrow),
.elementor-widget-wrap:has(> .geoanda-hero-arrow) {
    position: static;
}

.elementor .elementor-element.geoanda-hero-arrow {
    position: absolute;
    left: 50%;
    bottom: 60px;
    width: auto;
    margin: 0;
    transform: translateX(-50%);

    & .elementor-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 56px;
        height: 56px;
        border: 1px solid rgba(255, 255, 255, 0.6);
        border-radius: 50%;
        font-size: 18px;
        color: #fff;
    }

    & .elementor-icon:hover {
        border-color: var(--geoanda-orange, #DB5C35);
        color: var(--geoanda-orange, #DB5C35);
    }

    & .elementor-icon svg {
        fill: currentColor;
    }

    @media (max-width: 1024px) {
        display: none;
    }
}

#qodef-page-footer-top-area .qodef-grid-inner {
    @media (min-width: 769px) {
        display: flex;
        flex-wrap: wrap;

        & .qodef-grid-item:has(#copyright-year) {
            display: flex;
            flex-direction: column;
        }

        & .widget:has(#copyright-year) {
            margin-top: auto;
        }

        & .qodef-grid-item:has(.geoanda-footer-label) {
            display: flex;
            flex-direction: column;
        }

        & .widget:has(.geoanda-footer-label) {
            display: flex;
            flex-grow: 1;
            flex-direction: column;
        }

        & .geoanda-footer-links + .geoanda-footer-label {
            margin-top: auto;
            padding-top: 30px;
        }

        & .widget:has(.geoanda-footer-label) > p:last-child {
            margin-bottom: 0;
        }
    }

    /* Move copyright to bottom on mobile */
    @media (max-width: 768px) {
        display: flex;
        flex-direction: column;

        & .qodef-grid-item:has(#copyright-year) {
            display: contents;

            & > .widget {
                padding-inline: 15px;
            }
        }

        & .widget:has(#copyright-year) {
            order: 1;
            margin-top: 35px;
        }
    }
}

.geoanda-footer-links {
    & a:any-link {
        text-decoration: underline;
        text-underline-offset: 3px;
    }
}

/* Footer link group labels */
.geoanda-footer-label {
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--geoanda-orange, #DB5C35);

    .geoanda-footer-links + & {
        margin-top: 30px;
    }
}

/* Footer email scales on small phones */
#qodef-page-footer-top-area h2:has(a[href^="mailto:"]) {
    @media (max-width: 374px) {
        font-size: clamp(20px, 7.2vw, 30px);
    }
}

/* Accordions collapsed before Archicon's script runs, so anchor jumps land right */
.qodef-accordion.qodef-behavior--accordion:not(.qodef--init) > .qodef-accordion-content:not(:first-of-type) {
    display: none;
}

/* HOMEPAGE */
.geoanda__home__services .qodef-accordion .qodef-accordion-mark svg {
    stroke: var(--geoanda-orange, #DB5C35);
}

/* Service links in the homepage accordion */
.geoanda__home__services .qodef-accordion .qodef-accordion-content {
    font-size: 17px;
    line-height: 1.667em;

    & p + p {
        margin-top: 30px;
    }
}

/* Arrow link: Service links in the homepage accordion, email in the Service checklist */
.geoanda__home__services .qodef-accordion .qodef-accordion-content a,
.elementor .geoanda__services__checklist__email a {
    --geo-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 11.966 9.767' fill='none' stroke='%23000'%3E%3Cpath d='M0 4.842h11.077'/%3E%3Cpath d='m6.729.353 4.53 4.53-4.53 4.53'/%3E%3C/svg%3E");
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #000000;
    text-decoration: underline;
    text-decoration-color: var(--geoanda-orange, #DB5C35);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    transition: color .2s ease-out;

    &::after {
        content: '';
        flex: 0 0 12px;
        width: 12px;
        height: 10px;
        background-color: currentColor;
        -webkit-mask: var(--geo-arrow) no-repeat center / contain;
        mask: var(--geo-arrow) no-repeat center / contain;
        transition: transform .4s cubic-bezier(.33, .02, 0, .93);
    }

    &:hover {
        color: var(--geoanda-orange, #DB5C35);

        &::after {
            transform: translateX(5px);
        }
    }
}

#geoanda__home__projects {
    & .elementor-widget-image {
        overflow: hidden;
    }

    & figure {
        margin: 0;
    }

    & figcaption {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    & img {
        display: block;
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        transform: scale(1.1);
        transition: transform 1s cubic-bezier(.33, .02, 0, .93);
    }

    & .elementor-widget-image:hover img {
        transform: scale(1.1) translateX(4%);
    }
}

/* SERVICES */
.single-service #qodef-page-inner {
    padding-top: 0;
}

/* Other Services, listed below the shared CTA */
.geoanda-related-services {
    margin-top: 140px;
    padding-inline: 30px;

    & .geoanda-related-services-tagline {
        margin: 0 0 19px;
        color: var(--geoanda-orange, #DB5C35);
        text-transform: uppercase;
    }

    & .geoanda-related-services-list {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 40px 60px;
    }

    /* Items in a row share its height, so pushing the link to the bottom lines the links up */
    & .geoanda-related-services-item {
        display: flex;
        flex-direction: column;
        border-top: 1px solid #D4D4D4;
        padding-top: 26px;

        & > a {
            align-self: flex-start;
            margin-top: auto;
        }

        & > :has(+ a) {
            margin-bottom: 22px;
        }
    }

    & .geoanda-related-services-title {
        margin: 0 0 10px;
    }

    & .geoanda-related-services-excerpt {
        margin: 0;
        color: #707070;
    }

    @media (max-width: 1024px) {
        padding-inline: 7%;

        & .geoanda-related-services-list {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 767px) {
        padding-inline: 30px;
    }
}

.geoanda__services__elaborati-i-podloge__accordion__info-intro {
    margin-bottom: 22px;
    color: #707070;

    & a:any-link {
        text-decoration: underline;
        text-underline-offset: 3px;
    }
}

.geoanda__services__elaborati-i-podloge__accordion__info-columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px 30px;
    margin-top: 6px;

    @media (max-width: 767px) {
        grid-template-columns: 1fr;
    }
}

.geoanda__services__elaborati-i-podloge__accordion__info-label {
    display: block;
    color: #707070;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.geoanda__services__timeline {
    /* Archicon Timeline arrows */
    & :is(.qodef-nav-prev, .qodef-nav-next) {
        & > svg {
            width: 28px;
            height: 28px;
        }

        & svg > g > path {
            fill: var(--geoanda-orange, #DB5C35);
        }

        /* On phones Archicon anchors the arrows to the bottom, so move them down by the extra size to keep them centred on the line */
        @media (max-width: 680px) {
            bottom: -8px;
        }
    }
}

/* Example cards on Service pages: the cover shows, the other images only open in the zoom viewer */
.geo-elaborat {
     /* other views exist only in the HTML, for the zoom script.
     Hidden images with loading="lazy" aren't downloaded, so the 5000 px drawings
     load only when the viewer opens.
     */
    & .qodef-e:not(:first-child) {
        display: none;
    }

    & .qodef-popup-item {
        display: block;
        overflow: hidden;
        border: 1px solid #D4D4D4;
    }

    & img {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
        transition: transform 1s cubic-bezier(0.33, 0.02, 0, 0.93);
    }

    & .qodef-popup-item:hover img {
        transform: scale(1.06);
    }

    &.geo-elaborat--big img {
        object-position: center 25%;
    }
}

/* Large card: the image fills the height of the two small cards beside it */
@media (min-width: 1025px) {
    .elementor-widget:has(> .elementor-widget-container > .geo-elaborat--big) {
        position: relative;
        flex: 1 1 auto;
        min-height: 360px;
    }

    .elementor-widget-container > .geo-elaborat--big {
        position: absolute;
        inset: 0;

        & :is(.qodef-grid-inner, .qodef-e:first-child, .qodef-popup-item) {
            height: 100%;
        }

        & img {
            height: 100%;
            aspect-ratio: auto;
        }
    }
}

.e-con:has(> .elementor-widget .geo-elaborat) .qodef-m-tagline {
    margin-bottom: 6px;
}

/* Zoom viewer caption */
.geo-pswp-caption {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - 40px);
    padding: 10px 16px;
    font-size: 15px;
    line-height: 1.4;
    text-align: center;
    color: #FFFFFF;
    background-color: color-mix(in srgb, var(--geoanda-orange, #DB5C35) 85%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    pointer-events: none;

    & small {
        display: block;
        margin-top: 2px;
        font-size: 13px;
        color: rgba(255, 255, 255, .9);
    }
}

/* PROJECTS */
.geo-index-link {
    counter-increment: geo-index;

    & .qodef-button::before {
        content: counter(geo-index, decimal-leading-zero);
        color: var(--geoanda-orange, #DB5C35);
    }
}

#qodef-page-content {
    counter-reset: geo-project;
}

.geo-cover-title {
    --geo-number-size: 88px;
    --geo-number-overlap: 40px;
    --geo-strip-padding: 16px;
    counter-increment: geo-project;
    padding-top: calc(var(--geo-number-size) - var(--geo-number-overlap));

    & .qodef-m-tagline {
        position: relative;
        width: fit-content;
        margin: 0 !important;
        padding: 8px var(--geo-strip-padding) 8px calc(2 * var(--geo-strip-padding) + 1.15 * var(--geo-number-size));
        line-height: 24px;
        color: #FFFFFF;
        background-color: color-mix(in srgb, var(--geoanda-orange, #DB5C35) 85%, transparent);

        &::before {
            content: counter(geo-project, decimal-leading-zero);
            position: absolute;
            bottom: calc(100% - var(--geo-number-overlap));
            left: var(--geo-strip-padding);
            font-size: var(--geo-number-size);
            line-height: 1;
        }
    }

    @media (max-width: 680px) {
        --geo-number-size: 68px;
        --geo-strip-padding: 12px;

        & .qodef-m-tagline {
            margin-bottom: 10px !important;
        }
    }
}

.elementor .elementor-widget.geo-fact {
    margin-block-end: 0;
    padding: 14px 0 18px;
    border-top: 1px solid #D4D4D4;

    &:last-child {
        border-bottom: 1px solid #D4D4D4;
    }

    & .qodef-m-tagline {
        margin: 0 0 2px;
        font-size: 15px;
        color: var(--geoanda-orange, #DB5C35);
        text-transform: none;
    }

    & .qodef-m-title a {
        color: inherit;
        text-decoration: underline;
        text-decoration-color: #D4D4D4;
        text-underline-offset: 3px;

        &:hover {
            color: var(--geoanda-orange, #DB5C35);
        }
    }

    @media (max-width: 1024px) {
        width: calc(50% - 15px);
        /* An odd last fact fills its row */
        flex-grow: 1;

        &:last-child {
            border-bottom: 0;
        }
    }

    @media (max-width: 767px) {
        width: 100%;
    }
}

.geo-project-text p {
    margin: 0 0 18px;

    &:first-child {
        font-size: 24px;
        line-height: 1.5;
    }

    &:last-child {
        margin-bottom: 0;
    }

    @media (max-width: 767px) {
        &:first-child {
            font-size: 20px;
        }
    }
}

.geo-follow {
    & .qodef-popup-item {
        display: block;
        overflow: hidden;
    }

    & img {
        transform: scale(1.1);
        transition: transform 1s cubic-bezier(0.33, 0.02, 0, 0.93);
    }

    & .qodef-popup-item:hover img {
        transform: scale(1.1) translateX(4%);
    }
}

.geo-follow-label {
    background-color: color-mix(in srgb, var(--geoanda-orange, #DB5C35) 85%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);

    & .qodef-e-info-category a {
        color: rgba(255, 255, 255, .9);
    }

    & .qodef-e-title {
        font-size: 22px;
        line-height: 1.3;
    }
}

.geo-project-label {
    position: fixed;
    left: 30px;
    bottom: 30px;
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 18px 13px;
    color: #FFFFFF;
    background-color: color-mix(in srgb, var(--geoanda-orange, #DB5C35) 85%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    pointer-events: none;
    clip-path: inset(0 100% 0 0);
    opacity: 0;
    transition: clip-path .4s cubic-bezier(0.645, 0.045, 0.355, 1), opacity .3s ease-out;

    &.is-active {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }

    & .geo-project-label-tag {
        font-size: 16px;
        line-height: 1.3;
        color: rgba(255, 255, 255, .9);
    }

    & .geo-project-label-name {
        font-size: 24px;
        line-height: 1.25;
        letter-spacing: -.01em;
    }

    @media (max-width: 680px) {
        left: 12px;
        bottom: 12px;

        & .geo-project-label-name {
            font-size: 22px;
        }
    }
}

/* Mobile menu button */
#qodef-page-mobile-header .qodef-side-area-mobile-header-opener {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: #FFFFFF;
    background-color: var(--geoanda-orange, #DB5C35);

    &:hover {
        color: #FFFFFF;
    }

    & svg {
        display: block;
        width: 24px;
        height: auto;
    }

    & path {
        vector-effect: non-scaling-stroke;
    }
}

/* Navbar underline */
.qodef-header-navigation > ul > li > a .qodef-menu-item-text,
.qodef-header-navigation > ul > li.qodef-menu-item--narrow ul.sub-menu li > a .qodef-menu-item-text,
.qodef-header-switch-navigation ul li a .qodef-menu-item-text {
    padding-bottom: 4px;
    background-image: linear-gradient(to top, var(--geoanda-orange, #DB5C35) 2px, transparent 2px);
}

/* Navbar font size */
.qodef-header-navigation > ul > li > a,
.qodef-header-switch-navigation > ul > li > a {
    font-size: 20px;
}

.qodef-header-navigation > ul > li.qodef-menu-item--narrow ul li > a,
.qodef-header-switch-navigation ul li ul li > a {
    font-size: 18px;
    line-height: 1.4;
}

#qodef-side-area-mobile-header .qodef-m-navigation {
    & > ul > li + li {
        margin-top: 20px;
    }

    & > ul > li > a {
        font-size: 22px;
    }

    & ul li ul li > a {
        font-size: 18px;
    }
}

/* Highlighted menu item with survey corners */
.qodef-header-navigation > ul > li.geo-menu-highlight > a .qodef-menu-item-text {
    position: relative;
}

.qodef-header-switch-navigation > ul > li.geo-menu-highlight > a {
    padding: 6px 10px;
}

#qodef-side-area-mobile-header .qodef-m-navigation > ul > li.geo-menu-highlight > a {
    position: relative;
    display: inline-block;
}

.qodef-header-navigation > ul > li.geo-menu-highlight > a .qodef-menu-item-text::before,
.qodef-header-switch-navigation > ul > li.geo-menu-highlight > a::before,
#qodef-side-area-mobile-header .qodef-m-navigation > ul > li.geo-menu-highlight > a::before {
    --geo-c: var(--geoanda-orange, #DB5C35);
    --geo-l: 10px;
    --geo-w: 1.5px;
    --geo-fx: -12px;
    --geo-fy: -8px;
    content: "";
    position: absolute;
    inset: var(--geo-fy) var(--geo-fx);
    pointer-events: none;
    background:
        linear-gradient(var(--geo-c) 0 0) 0 0 / var(--geo-l) var(--geo-w),
        linear-gradient(var(--geo-c) 0 0) 0 0 / var(--geo-w) var(--geo-l),
        linear-gradient(var(--geo-c) 0 0) 100% 0 / var(--geo-l) var(--geo-w),
        linear-gradient(var(--geo-c) 0 0) 100% 0 / var(--geo-w) var(--geo-l),
        linear-gradient(var(--geo-c) 0 0) 0 100% / var(--geo-l) var(--geo-w),
        linear-gradient(var(--geo-c) 0 0) 0 100% / var(--geo-w) var(--geo-l),
        linear-gradient(var(--geo-c) 0 0) 100% 100% / var(--geo-l) var(--geo-w),
        linear-gradient(var(--geo-c) 0 0) 100% 100% / var(--geo-w) var(--geo-l);
    background-repeat: no-repeat;
    animation: geo-corners-aim 2.4s ease-in-out infinite;

    @media (prefers-reduced-motion: reduce) {
        animation: none;
    }
}

.qodef-header-switch-navigation > ul > li.geo-menu-highlight > a::before {
    --geo-fx: 3px;
    --geo-fy: 3px;
}

@keyframes geo-corners-aim {
    0%, 100% { inset: calc(var(--geo-fy) - 3px) calc(var(--geo-fx) - 3px); }
    50% { inset: calc(var(--geo-fy) + 1px) calc(var(--geo-fx) + 2px); }
}
