.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2.4rem 0;
    z-index: 100;
    background-image: linear-gradient(180deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, 0) 100%);
    transition: transform .5s linear;
    --navfront: var(--antracite);
    --navback: var(--white);
}

.body--home .navbar,
.body--production .navbar {
    --navfront: var(--white);
    --navback: var(--antracite);
}

body:not(.body--home):not(.body--production) .navbar {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);
}

.navbar > .container {
    display: flex;
}

@media(min-width: 1460px) {
    .navbar > .container {
        max-width: calc(100% - 7.2rem - 7.2rem);
    }
}

.navbar__logo {
    display: flex;
    flex-flow: column;
}

    .navbar__logo,
    .navbar__logo h1,
    .footer__logo {
        font-family: var(--fontheader);
        font-size: 5.7rem !important;
        line-height: 4.5rem !important;
        color: var(--white);
        display: flex;
        flex-flow: column;
        transform-origin: top left;
        background-image: none !important;
        transition: var(--transition-default);
    }

        .navbar__logo h1 > span:first-of-type {
            color: var(--pink);
        }

        .navbar__logo > span,
        .footer__logo > span {
            display: flex;
            flex-flow: column;
        }

        .navbar__logo span span {
            color: var(--brown);
        }

body.body--production .navbar__logo span span {
    color: var(--white);
}

body.body--home .navbar__logo h1 > span:first-of-type {
    color: var(--white);
}

body.body--home .navbar__logo h1 > span:last-of-type {
    color: var(--pink);
}

body:not(.body--home) .navbar__logo h1,
body:not(.body--home) .navbar__logo .logo--type {
    color: var(--pink);
}

.navbar .navbar__logo,
.navbar .navbar__featured {
    transition: var(--transition-default);
}

@media(min-width: 1024px) and (max-height: 650px) {
    .navbar__logo,
    .navbar__logo h1,
    .footer__logo {
        font-size: 4.5rem !important;
        line-height: 3.6rem !important;
    }
}

.navbar.nav--scrolled .search__toggler,
.navbar.nav--scrolled .navbar__toggler {
    box-shadow: 0 0 0 .2rem transparent;
}

.navbar.nav--scrolled {
    padding: 1.6rem 0;
    background-color: transparent;
    background-image: none !important;
    /*
    --navfront: var(--antracite);
    --navback: var(--white);
        */
}

    .navbar.nav--scrolled .navbar__logo,
    .navbar.nav--scrolled .navbar__featured {
        transform: translateY(calc(var(--nav-height) * -1));
        opacity: 0;
    }

        .navbar.nav--scrolled .navbar__logo,
        .navbar.nav--scrolled .navbar__logo h1 {
            font-size: calc(5.7rem / 2) !important;
            line-height: calc(4.5rem / 2) !important;
        }

    .navbar.nav--scrolled .search__toggler,
    .navbar.nav--scrolled .navbar__toggler {
        box-shadow: 0 0 0 .2rem var(--antracite);
    }

body:not(.body--home) .navbar.nav--scrolled .navbar__logo h1,
body:not(.body--home) .navbar.nav--scrolled .navbar__logo .logo--type,
body.body--home .navbar.nav--scrolled .navbar__logo h1 > span:last-of-type {
    color: var(--white);
}

.navbar ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

ul.navbar__featured {
    margin-left: auto;
    margin-right: 2.4rem;
}

    ul.navbar__featured a {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        font-weight: 500;
        color: var(--navfront);
        line-height: 4.2rem;
        height: 4.2rem;
        padding: 0 1.6rem;
    }

    ul.navbar__featured .active a:before {
        content: "";
        width: .6rem;
        height: .6rem;
        border-radius: 50%;
        background-color: var(--navfront);
        display: inline-block;
    }

@media (pointer: fine) {
    ul.navbar__featured li:not(.active) a {
        background-image: linear-gradient(var(--navfront), var(--navfront));
        background-position: 1.6rem calc(100% - 1.2rem);
        background-repeat: no-repeat;
        background-size: 0 .1rem;
    }

        ul.navbar__featured li:not(.active) a:hover {
            background-size: calc(100% - 3.2rem) .1rem;
        }
}

@media(max-width: 1023px) {
    .navbar {
        padding: 1.6rem 0;
    }

    .navbar__logo,
    .navbar__logo h1,
    .footer__logo {
        font-size: 3.6rem !important;
        line-height: 2.84rem !important;
    }

    .navbar__logo {
        margin-right: auto;
    }
}

@media(max-width: 576px) {
    body:not(.body--home) .navbar__logo {
        position: relative;
    }

    body:not(.body--home) .navbar__logo h1 {
        width: calc(100dvw - 4rem);
        position: absolute;
        top: 5.7rem;
        overflow: hidden;
        text-overflow: ellipsis;
        max-height: 5.7rem;
    }
}

.navbar__layer,
.search__layer,
.filter__layer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: auto;
    min-width: 69.4rem;
    max-width: 80rem;
    background-color: var(--pink);
    border-radius: 4.8rem 0 0 4.8rem;
    display: flex;
    flex-flow: column;
    transform: translateX(100%);
    transition: var(--transition-default);
}

.search__layer {
    background-color: var(--yellow-warm);
}

.filter__layer {
    background-color: var(--white);
}

    .navbar__toggler[aria-expanded="true"] ~ .navbar__layer,
    .search__toggler[aria-expanded="true"] ~ .search__layer,
    .filter__layer.show {
        transform: translateX(0) scale(1);
    }

.layer__header {
    height: 9rem;
    min-height: 9rem;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 500;
    border-bottom: .2rem solid rgba(42, 42, 42, .1);
}

.layer__items {
    width: 100%;
    padding: 5rem;
    display: flex;
    gap: 10rem;
    overflow-y: auto;
}

    .layer__items form {
        width: 100%;
    }

    .layer__items > div {
        display: flex;
        flex-flow: column;
        gap: 1.6rem;
        padding-right: 5rem;
    }

    .layer__items ul {
        display: flex;
        flex-flow: column;
        gap: 1.6rem;
    }

        .layer__items ul.navbar__main {
            font-size: 5.6rem;
            line-height: 1;
            letter-spacing: .112rem;
        }

            .layer__items ul.navbar__main a {
                display: inline-flex;
                align-items: center;
                white-space: nowrap;
            }

        .layer__items ul.navbar__sub {
            font-size: 2.2rem;
            letter-spacing: .022rem;
            margin-bottom: 4.8rem;
            font-weight: 500;
        }

    .layer__items p {
        line-height: 1.5;
        margin-bottom: 0;
    }

        .layer__items p strong {
            font-size: 2.2rem;
        }

@media (pointer: fine) {
    .layer__items ul.navbar__main a,
    .layer__items ul.navbar__sub a {
        padding-right: 2.8rem;
        position: relative;
        transition: var(--transition-default);
    }

    .layer__items ul.navbar__sub a {
        padding-right: 2rem;
    }

        .layer__items ul.navbar__main a:hover,
        .layer__items ul.navbar__sub a:hover {
            padding-right: 0;
            padding-left: 2.8rem;
        }

        .layer__items ul.navbar__sub a:hover {
            padding-left: 2rem;
        }

        .layer__items ul.navbar__main a:before,
        .layer__items ul.navbar__sub a:before {
            content: "";
            width: 0;
            height: 0;
            border-radius: 50%;
            background-color: var(--antracite);
            position: absolute;
            top: 2rem;
            left: 0;
            margin-right: 0;
            transition: var(--transition-default);
        }

        .layer__items ul.navbar__sub a:before {
            top: .6rem;
        }

    .layer__items ul.navbar__main a:hover:before {
        height: 1.2rem;
        width: 1.2rem;
        margin-right: 1.6rem;
    }

    .layer__items ul.navbar__sub a:hover:before {
        height: .8rem;
        width: .8rem;
        margin-right: 1.2rem;
    }
}

.layer__footer {
    padding: 0 5rem 5rem;
    display: flex;
    gap: 2.4rem;
    margin-top: auto;
    font-size: 0;
}

    .layer__footer svg {
        width: 2.6rem;
        height: 2.6rem;
    }

        .layer__footer svg path,
        .layer__footer svg rect {
            fill: var(--antracite);
        }

.navbar__toggler,
.search__toggler,
.filter__close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4.5rem;
    height: 4.2rem;
    border: none;
    border-radius: 2rem;
    position: relative;
    background-image: none;
    padding: 0;
    margin-left: 1.6rem;
    background-color: var(--navfront);
    transition: var(--transition-default);
    cursor: pointer;
    z-index: 9;
}

    .navbar__toggler:after,
    .search__toggler:after,
    .filter__close:after {
        content: "";
        width: 200%;
        height: 200%;
        position: absolute;
        top: -50%;
        left: 0;
        background-color: transparent;
        z-index: 0;
    }

    .navbar__toggler span,
    .search__toggler span,
    .filter__close span {
        display: block;
        position: absolute;
        height: .2rem;
        width: 1.5rem;
        background: var(--navback);
        opacity: 1;
        left: 1.5rem;
        transform: rotate(0deg);
        transition: var(--transition-default);
        z-index: 1;
    }

        .navbar__toggler span:nth-child(1),
        .search__toggler span:nth-child(1),
        .filter__close span:nth-child(1) {
            top: 1.5rem;
        }

        .navbar__toggler span:nth-child(2),
        .navbar__toggler span:nth-child(3),
        .search__toggler span:nth-child(2),
        .search__toggler span:nth-child(3),
        .filter__close span:nth-child(2),
        .filter__close span:nth-child(3) {
            top: 2.0rem;
        }

        .navbar__toggler span:nth-child(4),
        .search__toggler span:nth-child(4),
        .filter__close span:nth-child(4) {
            top: 2.5rem;
        }

    .navbar__toggler[aria-expanded="true"],
    .search__toggler[aria-expanded="true"],
    .filter__close {
        text-indent: -9000px;
        background-color: var(--antracite)
    }

        .navbar__toggler[aria-expanded="true"] span,
        .search__toggler[aria-expanded="true"] span,
        .filter__close span {
            background-color: var(--white);
        }

            .navbar__toggler[aria-expanded="true"] span:nth-child(1),
            .search__toggler[aria-expanded="true"] span:nth-child(1),
            .filter__close span:nth-child(1) {
                top: 1.5rem;
                width: 0%;
                left: 1.5rem;
            }

            .navbar__toggler[aria-expanded="true"] span:nth-child(2),
            .search__toggler[aria-expanded="true"] span:nth-child(2),
            .filter__close span:nth-child(2) {
                transform: rotate(45deg);
            }

            .navbar__toggler[aria-expanded="true"] span:nth-child(3),
            .search__toggler[aria-expanded="true"] span:nth-child(3),
            .filter__close span:nth-child(3) {
                transform: rotate(-45deg);
            }

            .navbar__toggler[aria-expanded="true"] span:nth-child(4),
            .search__toggler[aria-expanded="true"] span:nth-child(4),
            .filter__close span:nth-child(4) {
                top: 1.5rem;
                width: 0%;
                left: 1.5rem;
            }

            .search__toggler[aria-expanded="false"] span,
            .search__toggler[aria-expanded="true"] span:nth-child(1),
            .search__toggler[aria-expanded="true"] span:nth-child(4),
            .filter__close span:nth-child(1),
            .filter__close span:nth-child(4) {
                opacity: 0;
            }

        .search__toggler[aria-expanded="true"] svg {
            opacity: 0;
        }

    .search__toggler svg path {
        stroke: var(--navback);
    }

    .search__toggler[aria-expanded="true"] ~ .navbar__toggler,
    .search__toggler:has(~ .navbar__toggler[aria-expanded="true"]) {
        display: none;
    }

.search__layer .layer__items {
    flex-flow: column;
    overflow: hidden;
}

.search__results {
    display: flex;
    flex-flow: column;
    padding-right: 0 !important;
    overflow-y: auto;
}

.search__result a {
    display: flex;
    flex-flow: column;
    gap: .6rem;
}

    .search__result a span {
        font-size: 2.2rem;
        font-weight: 500;
        line-height: 1;
    }

    .search__result a time {
        font-size: 1.4rem;
    }

    .search__result a small {
        font-size: 1.4rem;
        font-weight: 500;
    }

.search__result:has(+.search__result) {
    padding-bottom: 1.6rem;
    border-bottom: .1rem solid rgba(42, 42, 42, .1);
}

@media(max-width: 1023px) {
    .navbar__layer,
    .search__layer,
    .filter__layer {
        min-width: 100dvw;
        max-width: 100dvw;
        border-radius: 0;
    }

    .layer__header {
        height: 7.4rem;
        min-height: 7.4rem;
    }

    .layer__items {
        padding-left: 2rem;
        padding-right: 2rem;
        gap: 4.8rem;
        flex-flow: column;
    }

        .layer__items ul.navbar__main {
            font-size: var(--fontsize-header-lg);
        }

        .layer__items ul.navbar__sub a {
            line-height: 125%;
        }

    .layer__footer {
        flex-flow: row !important;
        padding: 0 0 5rem;
    }

    .search__layer .form .form__group--filter p {
        font-size: 1.6rem;
        gap: .6rem;
    }

    .search__layer .form .form__group--filter label {
        padding: .6rem 1.4rem .4rem;
        min-height: 4rem;
        font-size: 1.6rem;
    }
}

@media(max-width: 400px) {
    .search__layer .form .form__group--filter {
        justify-content: space-between;
    }
}
