:root {
    --primary-color: #0075BE;
    --secondary-color: #005587;
    --color-white: #FFFFFF;
    --color-dark: #001928;
    --color-light: #E6F9FE;
    --color-hover-background: #F5F6F7;
    --background-color: #EEF7FC;
    --button-color: #0075BE;
    --button-hover-color: #001928;
    --button-light-color: #F5F6F7;
    --font-color: #003758;
    --text-font-color: #001928;
}

* {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
}

.visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

html {
    scroll-behavior: smooth;
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    display: block;
    font-family: "Heebo", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    color: var(--color-dark);
    font-size: 16px;
}

label,
button,
input {
    font-family: "Heebo", sans-serif;
}

button {
    transition: background .2s, color .2s;
    cursor: pointer;
}

* {
    outline-color: var(--primary-color);
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
div,
section {
    position: relative;
    display: block;
}

/* accessibility */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: #000;
    color: #fff;
    padding: 8px;
    text-decoration: none;
    z-index: 9999;
}

.skip-link:focus {
    top: 6px;
}

/* global */
.layout-center {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;

    @media (width <=1248px) {
        padding-inline: 24px;
    }
}

.layout-background {
    background: #F5F6F7;
    padding-block: 80px;

    @media (width <=1248px) {
        padding-block: 40px;
    }
}

a {
    transition: color .25s;
}

.button {
    border-radius: 28px;
    display: inline-flex;
    padding: 14px 32px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    text-decoration: none;
    background-color: var(--primary-color);
    color: var(--color-white);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 1rem;
    border: none;
    cursor: pointer;
    transition: color .25s, background .25s;

    &.white {
        background-color: var(--color-white);
        color: var(--primary-color);
    }

    &.ghost {
        border: 2px solid var(--primary-color);
        background: #FFF;
        color: var(--primary-color);
    }

    &.center {
        margin: 0 auto;
    }

    &[target="_blank"] {
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding-right: 57px;


        &:after {
            position: absolute;
            content: '';
            display: flex;
            width: 15px;
            height: 15px;
            margin-top: -3px;
            right: 32px;
            background: url(../img/icons/external.svg) no-repeat center center;
            background-size: contain;
        }
    }

    &:hover {
        background: var(--secondary-color);
        color: var(--color-white);
        text-decoration: underline;
    }

    @media (width <=600px) {
        & {
            font-size: 14px;
        }
    }
}

/* header */
header {
    background-color: #fff;
    position: sticky;
    top: 0px;
    z-index: 5000;

    section.top {
        display: flex;
        height: 44px;
        border-bottom: 1px solid #D9DCE1;

        nav {
            display: none;
        }

        >div {
            display: grid;
            width: 100%;
            height: 100%;
            grid-template-columns: auto 1fr auto auto auto;

            section {
                position: relative;
                height: 100%;
                padding: 2px;
                box-sizing: border-box;
                display: flex;
                align-items: center;
                border-right: 1px solid #D9DCE1;
                white-space: nowrap;

                &:last-child {
                    border-right: none;
                }

                button[type="button"] {
                    display: flex;
                    gap: 10px;
                    align-items: center;
                    background: none;
                    border: none;
                    height: 100%;
                    font-size: 14px;
                    cursor: pointer;
                    color: #646C76;
                    font-weight: 400;
                    padding-inline: 1rem;

                    span,
                    strong,
                    img {
                        pointer-events: none;
                    }

                    &:hover {
                        strong {
                            color: var(--primary-color) !important;
                        }
                    }

                    strong {
                        font-size: 12px;
                        font-style: normal;
                        font-weight: 700;
                        color: #000;
                        font-family: "Lato", sans-serif;
                    }

                    &:after {
                        flex: 0 0 auto;
                        content: ' ';
                        width: 11px;
                        height: 7px;
                        background: url(../img/icons/chevron-nav.svg) no-repeat center;
                        border: 1px solid var(--border-color);
                        display: inline-block;
                        transform: rotate(180deg);
                    }

                    &:hover {
                        outline: 2px solid var(--primary-color);
                        background: var(--color-hover-background);
                        color: var(--primary-color);
                        text-decoration: underline;

                        &:after {
                            filter: invert(20%) sepia(98%) saturate(3058%) hue-rotate(188deg) brightness(98%) contrast(105%);
                        }
                    }
                }

                &:not(:has(button[aria-expanded="true"])) {

                    button[type="button"] {
                        &:after {
                            transform: rotate(0deg);
                        }
                    }

                    ul {
                        display: none;
                    }
                }

                @media (width > 900px) {

                    ul {
                        position: absolute;
                        top: 44px;
                        background: var(--color-white);
                        list-style: none;
                        margin: 0;
                        padding: 0;
                        z-index: 5000;
                        box-shadow: rgba(55, 55, 55, 0.25) 2px 8px 16px -2px, rgba(0, 0, 0, 0.25) 0px 4px 4px 0px;
                        border-radius: 0px 0px 8px 8px;
                        max-height: 400px;
                        min-width: 100%;
                        width: fit-content;
                        font-size: 14px;
                        font-weight: 500;
                        display: flex;
                        flex-direction: column;
                        overflow: auto;
                        scrollbar-width: thin;

                        & {
                            right: 0px;
                        }

                        li {
                            margin: 0;
                            padding: 4px;
                            box-sizing: border-box;

                            &.selected {
                                font-weight: 700;
                                pointer-events: none;
                            }

                            a {
                                display: block;
                                color: var(--color-dark);
                                text-decoration: none;
                                white-space: nowrap;
                                width: 100%;
                                height: 100%;
                                padding: 14px;
                                box-sizing: border-box;
                            }

                            &:hover {
                                background: var(--color-hover-background);

                                a {
                                    color: var(--primary-color);
                                    text-decoration: underline;
                                }
                            }

                        }
                    }

                }



            }

            section.currency {
                img {
                    width: 25px;
                    height: 14px;
                }
            }

            section.categories {

                button[type="button"] {
                    width: 200px;
                    height: 100%;
                    justify-content: space-between;

                    &:after {
                        width: 18px;
                        height: 9px;
                        background: url(../img/icons/chevron-nav-lg.svg) no-repeat center;
                    }
                }
            }

            form {
                position: relative;
                display: flex;
                width: 100%;
                height: 100%;
                align-items: center;
                gap: .5rem;
                padding-inline-end: .2rem;

                background: #FFF;

                >div {
                    display: flex;
                    align-items: center;
                    flex: 1 1 auto;
                    width: 100%;
                    height: 100%;

                    >img {
                        position: absolute;
                        pointer-events: none;
                        width: 16px;
                        height: 16px;
                        margin-left: 12px;
                    }

                    input {
                        border: none;
                        width: 100%;
                        height: 100%;
                        font-weight: 400;
                        font-family: inherit;
                        font-size: 14px;
                        padding-left: 40px;
                        border-radius: 0;
                        color: var(--color-dark);
                        padding-right: 34px;
                    }

                    >button {
                        position: absolute;
                        right: 0;
                        top: 0;
                        bottom: 0;
                        background: none;
                        border: none;
                        padding: 0 16px;
                        cursor: pointer;
                        font-size: 16px;
                        color: #646C76;
                        width: 34px;
                        height: 100%;
                        background: url(../img/icons/icon-close.svg) no-repeat center;
                        background-size: 14px 14px;
                    }

                }

                &:not(.show-clear-button)>div>button {
                    display: none;
                }

                >button {
                    flex: 0 0 auto;
                    font-weight: 700;
                    background: var(--color-light);
                    border: none;
                    border-radius: 28px;
                    padding: 9px 16px;
                    font-size: 14px;
                    color: var(--primary-color);
                    text-transform: uppercase;

                    &:hover {
                        background-color: var(--secondary-color);
                        color: #FFF;
                        text-decoration: underline;
                    }
                }
            }

            section.shipping {

                ul {
                    li.country {
                        a {
                            font-weight: 700;
                        }
                    }

                    li:not(.country) {
                        a {
                            padding-left: 30px;
                        }
                    }
                }
            }

            section.currency {
                a {
                    img {
                        display: none;
                        width: 25px;
                        height: 14px;
                    }
                }
            }

        }

    }

    >nav {
        border-bottom: 1px solid #D9DCE1;

        .menu-toggle {
            display: none;
        }

        >div {
            display: flex;
            height: 100%;

            .logo {
                display: flex;
                align-items: center;
                height: 100%;
                padding-block: 16px;
                margin-right: 72px;

                img {
                    width: 116.11px;
                    height: auto;
                }
            }

            ul {
                list-style: none;
                display: flex;
                margin: 0;
                padding: 0;
                gap: 16px;


                li {
                    display: flex;
                    align-items: center;
                    height: 100%;
                    border-bottom: 2px solid transparent;

                    &.active {
                        border-bottom: 2px solid var(--primary-color);
                    }

                    &:hover {
                        background-color: var(--color-hover-background);
                        border-bottom: 2px solid var(--primary-color)
                    }

                    a {
                        display: flex;
                        align-items: center;
                        height: 100%;
                        color: var(--color-dark);
                        text-decoration: none;
                        font-weight: 400;
                        line-height: normal;
                        padding: 1rem;
                    }
                }


            }
        }

    }

    @media (width <=900px) {

        section.top {
            display: none;
        }

        >nav {

            >div {
                justify-content: space-between;
                align-items: center;

                ul {
                    display: none;
                }

                .menu-toggle {
                    display: flex;
                    background: none;
                    border: none;
                    width: 32px;
                    height: 32px;
                    background: url(../img/icons/icon-menu.svg) no-repeat center;
                    background-size: 26px 26px;
                    cursor: pointer;
                }
            }

        }

        &.open {

            >nav {
                order: 1;

                .menu-toggle {
                    background: url(../img/icons/icon-close.svg) no-repeat center;
                }
            }

            section.top {
                position: absolute;
                top: 70px;
                width: 100%;
                height: auto;
                max-height: calc(100dvh - 70px);
                z-index: 5000;
                display: flex;
                flex-direction: column;
                border-bottom: none;
                box-sizing: border-box;
                overflow: hidden;
                box-shadow: 2px 8px 16px -2px rgba(55, 55, 55, 0.25), 0px 4px 4px 0px rgba(0, 0, 0, 0.25);

                >div {
                    position: relative;
                    display: flex;
                    flex: 0 1 auto;
                    flex-direction: column;
                    justify-content: flex-start;
                    height: 100%;
                    gap: 24px;
                    background: #F5F6F7;
                    padding-block: 24px;
                    overflow: hidden;

                    section {
                        border: none;
                        flex: 0 0 auto;
                        height: auto;
                    }

                    section.search {
                        border: 1px solid var(--color-dark);
                        height: 60px;

                        input {
                            font-size: 1rem;
                        }
                    }

                    section.categories,
                    section.shipping {
                        display: flex;
                        flex-direction: column;
                        overflow: hidden;
                        flex: 0 0 auto;

                        &:has(button[aria-expanded="true"]) {
                            flex: 1 1 auto;
                        }

                        button[type="button"] {
                            justify-content: space-between;
                            font-size: 1rem;
                            color: var(--color-dark);
                            font-weight: 500;
                            width: 100%;
                            padding-inline: 0;

                            &:after {
                                width: 18px;
                                height: 9px;
                                background: url(../img/icons/chevron-nav-lg.svg) no-repeat center;

                            }
                        }

                        &:has(button[aria-expanded="true"]) ul {
                            list-style: none;
                            margin: 0;
                            padding: 0;
                            width: 100%;
                            font-size: 14px;
                            font-weight: 500;
                            display: flex;
                            flex: 1 1 auto;
                            flex-direction: column;
                            gap: 4px;
                            overflow: auto;
                            scrollbar-width: thin;
                            margin-top: 10px;

                            &.align-right {
                                right: 0px;
                            }

                            li {
                                padding: 9px 14px;

                                &.selected {
                                    font-weight: 700;
                                }

                                a {
                                    color: var(--color-dark);
                                    text-decoration: none;
                                    white-space: nowrap;
                                    padding: 0;

                                    &:hover {
                                        text-decoration: underline;
                                    }
                                }

                                &.country {
                                    padding-left: 7px;
                                }
                            }
                        }

                    }

                    section.shipping {
                        margin-top: -10px;

                    }

                    section.currency,
                    section.lang {

                        button {
                            display: none;
                        }

                        ul {
                            display: flex;
                            flex-direction: column;
                            list-style: none;
                            text-decoration: none;
                            margin: 0;
                            padding: 0;
                            display: flex;
                            flex-direction: column;
                            gap: 0.75rem;

                            li {


                                &.selected {
                                    font-weight: 700
                                }

                                a {
                                    display: flex;
                                    align-items: center;
                                    gap: 9px;
                                    color: var(--color-dark);
                                    text-decoration: none;
                                    font-size: 1rem;

                                    &:before {
                                        content: ' ';
                                        display: block;
                                        border: 1px solid var(--primary-color);
                                        width: 24px;
                                        height: 24px;
                                        border-radius: 100%;
                                    }

                                }

                                &.selected a:after {
                                    position: absolute;
                                    content: ' ';
                                    margin-left: 6px;
                                    display: block;
                                    background: var(--primary-color);
                                    width: 14px;
                                    height: 14px;
                                    border-radius: 100%;
                                }
                            }

                        }



                    }

                    section.currency {
                        a {
                            img {
                                display: block;
                            }
                        }
                    }

                    section.lang {
                        border-top: 1px solid rgba(27, 40, 48, 0.25);
                        padding-top: 1rem;
                        margin-top: -6px;

                    }

                }

                nav {
                    flex: 0 0 auto;
                    box-sizing: border-box;
                    display: block;
                    background: #fff;
                    padding-block: 24px 36px;
                    padding-inline: 12px;

                    ul {
                        display: flex;
                        flex-direction: column;
                        list-style: none;
                        text-decoration: none;
                        margin: 0;
                        padding: 0;
                        display: flex;
                        flex-direction: column;
                        gap: 0.75rem;

                        li {

                            border-bottom: 1px solid #D9DCE1;


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

                            &.active {
                                border-bottom: 2px solid var(--primary-color);
                            }

                            a {
                                display: block;
                                padding: 12px;
                                height: 100%;
                                color: var(--color-dark);
                                text-decoration: none;
                                font-size: 1rem;
                            }

                        }
                    }
                }

            }


        }

    }

    @media (height <=900px) {

        &.open {

            section.top {
                overflow: scroll;

                >div {
                    height: auto;
                    overflow: visible;

                    section.categories,
                    section.shipping {

                        &:has(button[aria-expanded="true"]) ul {
                            max-height: 40vh;
                        }

                    }


                }

            }

        }

    }

}

main {
    scroll-margin-top: 115px;
    min-height: calc(100dvh - 290px);
}

/* home */
body.home {

    header {
        >nav {
            border: none;
        }
    }

    main {

        section.hero {
            position: relative;
            background: var(--primary-color);
            padding-block-end: 40px;
            margin-bottom: calc(11vw + 40px);

            .ribbon {
                position: absolute;
                display: block;
                bottom: -11vw;
                width: 100%;
                overflow: hidden;

                img {
                    display: block;
                    margin-left: -2%;
                    width: 104%;
                    height: auto;
                }

            }

            div.layout-center {
                position: relative;
                display: grid;
                padding-block: 50px 0px;
                grid-template-columns: 1fr 1fr;
                grid-template-rows: minmax(25vw 200px) 1fr;
                gap: 1rem;

                .logo {
                    grid-area: 1 / 1 / 1 / 1;
                    margin-left: max(-25px, -2.5vw);

                    img {
                        width: 130%;
                        height: auto;
                    }
                }

                .image {
                    grid-area: 1 / 2 / 3 / 2;

                    img {
                        width: 100%;
                        height: auto;
                    }
                }

                .content {
                    color: var(--color-white);
                    font-size: 20px;
                    font-style: normal;
                    font-weight: 300;
                    line-height: 150%;
                    grid-area: 2 / 1 / 3 / 1;
                    max-width: none;

                    h2 {
                        font-style: normal;
                        font-weight: 700;
                        font-size: 36px;
                        line-height: 130%;
                        margin: 0;
                        padding: 0;
                    }

                    p {
                        margin-block: .5rem;
                    }

                    .button {
                        margin-top: 24px;
                    }
                }
            }

            @media (width < 800px) {

                div.layout-center {
                    position: relative;
                    display: grid;
                    padding-inline: 0px;
                    grid-template-columns: 1fr 1fr;
                    grid-template-rows: minmax(25vw 200px) 1fr;
                    gap: 1rem;
                    overflow: hidden;

                    .logo {
                        margin-left: 5px;

                        img {
                            width: 215%;
                        }
                    }

                    .image {
                        overflow: hidden;
                        margin-top: 20px;
                        margin-left: -70px;

                        img {
                            width: 105%;
                        }
                    }

                    .content {
                        grid-area: 2 / 1 / 3 / 3;
                        font-size: 18px;
                        padding-inline: 20px;
                        margin-top: 60px;

                        h2 {
                            font-size: 26px;
                        }

                        p {
                            margin-block: .5rem;
                        }

                        .button {
                            margin-top: 16px;
                        }
                    }
                }
            }


        }


        >div>h2 {
            color: var(--color-dark);
            font-style: normal;
            font-weight: 700;
            font-size: 48px;
            text-align: center;
            text-wrap: pretty;
            line-height: 130%;
            margin-bottom: 48px;
        }

        ul.gifts {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 32px;
            margin: 0;
            padding: 0;
            list-style: none;
            padding-block-end: 40px;

            section.gift {

                display: flex;
                flex-direction: column;
                height: 100%;

                a {
                    text-decoration: none;
                    color: inherit;

                    &:hover {
                        text-decoration: underline;
                        color: var(--primary-color);
                        font-weight: 700;
                    }
                }

                img {
                    width: 100%;
                    height: auto;
                    border-radius: 8px;
                    margin-bottom: 1rem;
                    box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.18);
                }

                h2 {
                    font-style: normal;
                    font-weight: 700;
                    font-size: 1.375rem;
                    color: var(--primary-color);
                    margin: 0;
                    padding: 0;

                    a {
                        display: flex;
                        align-items: center;

                        &:hover {
                            color: var(--secondary-color);
                        }

                        &:after {
                            flex: 0 0 auto;
                            content: ' ';
                            width: 16px;
                            height: 20px;
                            background: url(../img/icons/next-chevron.svg) no-repeat center;
                            border: 1px solid var(--border-color);
                            border-radius: 100%;
                            display: inline-block;
                        }
                    }


                }

                >div {
                    display: flex;
                    font-style: normal;
                    font-weight: 300;
                    font-size: 1rem;
                    gap: .3rem;
                    height: 34px;
                    align-items: center;

                    h3 {
                        font-style: normal;
                        font-weight: 300;
                        font-size: 1rem;
                        margin: 0;
                        padding: 0;
                        height: 100%;
                    }

                    span {
                        display: flex;
                        height: 100%;
                    }

                    a {
                        display: block;
                        height: 100%;
                    }

                }

            }
        }



    }

    @media (width <=600px) {

        main {

            >div>h2 {
                font-size: 32px;
            }

            section.gifts {
                display: flex;
                flex-direction: column;
            }

        }
    }

}

/* gift guide */
body.giftguide {

    main {
        padding-top: 80px;

        >div>h1 {
            font-weight: 700;
            font-size: 48px;
            margin: 0;
            padding: 0;
        }

        >div>p {
            font-weight: 300;
            font-size: 18px;
            margin: 0;
            padding: 0;
        }

        .layout-background {
            margin-top: 40px;
        }

        .layout-center {
            display: flex;
            flex-direction: column;
        }

        form {
            display: flex;
            flex-direction: column;
            font-size: 1rem;
            margin-block: 32px;
            gap: 32px;
            color: var(--color-dark);


            .controls {
                display: flex;
                gap: 32px;
                align-items: center;

                button {
                    background: none;
                    border: none;
                }

                div.keyword {
                    position: relative;
                    display: flex;
                    align-items: center;
                    width: 100%;
                    border: 1px solid #777778;
                    border-radius: 3px;
                    overflow: hidden;
                    padding-inline-end: .5rem;
                    gap: .5rem;

                    div {
                        position: relative;
                        display: flex;
                        align-items: center;
                        width: 100%;
                        height: 50px;
                        flex: 1 1 auto;

                        >img {
                            position: absolute;
                            pointer-events: none;
                            width: 16px;
                            height: 16px;
                            margin-left: 12px;
                        }

                        input {
                            border: none;
                            width: 100%;
                            height: 100%;
                            font-weight: 400;
                            font-family: inherit;
                            font-size: 1rem;
                            padding-left: 40px;
                            border-radius: 0;
                            color: var(--color-dark);
                            padding-right: 34px;
                            outline: none;
                        }

                        >button {
                            position: absolute;
                            right: 0;
                            background: none;
                            border: none;
                            padding: 0 16px;
                            cursor: pointer;
                            font-size: 16px;
                            color: #646C76;
                            width: 34px;
                            height: 34px;
                            background: url(../img/icons/icon-close.svg) no-repeat center;
                            background-size: 14px 14px;
                        }

                        &:not(.show-clear-button)>button {
                            display: none;
                        }

                    }

                    >button {
                        flex: 0 0 auto;
                        font-weight: 700;
                        background: var(--primary-color);
                        border: none;
                        border-radius: 28px;
                        padding: 9px 16px;
                        font-size: 14px;
                        color: var(--color-white);
                        text-transform: uppercase;

                        &:hover {
                            background-color: var(--secondary-color);
                            color: #FFF;
                            text-decoration: underline;
                        }
                    }

                    &:has(input[type="text"]:focus-visible) {
                        outline: 2px solid var(--primary-color);
                    }

                }

                >button.filters-clear {
                    flex: 0 0 auto;
                    color: var(--primary-color);
                    font-weight: 700;
                    text-underline-offset: 5px;
                    font-size: 1rem;
                    cursor: pointer;

                    &:hover {
                        color: var(--secondary-color);
                        text-decoration: underline;
                    }
                }

                >button.filters-toggle {
                    display: none;
                }

            }

            .filters {
                display: flex;
                flex-direction: column;
                gap: 12px;
                font-size: 1rem;
                font-weight: 400;
                width: 100%;

                section.tags {
                    display: flex;
                    flex-wrap: wrap;
                    align-items: center;
                    gap: 10px;
                    min-height: 32px;

                    .label {
                        font-weight: 700;
                        text-transform: uppercase;
                    }

                    .list {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 10px;

                        div {
                            color: var(--color-white);
                            background: rgb(119, 119, 120);
                            padding: 4px 8px;
                            border-radius: 4px;
                        }
                    }
                }

                section.options {

                    >h2,
                    >button {
                        display: none;
                    }

                    .dropdowns {
                        display: flex;
                        gap: 16px;
                        width: 100%;

                        section {
                            height: 50px;
                            width: 100%;
                            flex: 1 1 auto;

                            >button[type="button"] {
                                background: none;
                                border: none;
                                width: 100%;
                                height: 100%;
                                display: flex;
                                color: inherit;
                                gap: 10px;
                                align-items: center;
                                background: none;
                                border: none;
                                font-size: 1rem;
                                font-weight: 400;
                                cursor: pointer;
                                border: 1px solid #777778;
                                border-radius: 3px;
                                font-weight: 400;
                                padding-inline: 1rem;

                                span {
                                    pointer-events: none;
                                }

                                &:after {
                                    position: absolute;
                                    flex: 0 0 auto;
                                    content: ' ';
                                    right: 1rem;
                                    width: 18px;
                                    height: 18px;
                                    background: url(../img/icons/chevron-nav.svg) no-repeat center;
                                    border: 1px solid var(--border-color);
                                    border-radius: 100%;
                                    display: inline-block;
                                    transform: rotate(180deg);
                                }

                            }

                            &:not(:has(button[aria-expanded="true"])) {

                                button[type="button"] {
                                    &:after {
                                        transform: rotate(0deg);
                                    }
                                }

                                ul {
                                    display: none;
                                }
                            }

                            ul {
                                position: absolute;
                                top: 52px;
                                background: var(--color-white);
                                list-style: none;
                                margin: 0;
                                padding: 0;
                                z-index: 5000;
                                box-shadow: rgba(55, 55, 55, 0.25) 2px 8px 16px -2px, rgba(0, 0, 0, 0.25) 0px 4px 4px 0px;
                                border-radius: 8px;
                                max-height: 400px;
                                min-width: 100%;
                                width: fit-content;
                                font-size: 14px;
                                font-weight: 500;
                                display: flex;
                                flex-direction: column;
                                gap: 4px;
                                overflow: auto;
                                scrollbar-width: thin;
                                z-index: 8000;

                                li {
                                    padding: 6px;

                                    &.selected {
                                        font-weight: 700;
                                    }

                                    label {
                                        display: flex;
                                        gap: 8px;
                                        height: 100%;
                                        align-items: center;
                                        color: var(--color-dark);
                                        text-decoration: none;
                                        white-space: nowrap;
                                        padding: 8px;
                                        cursor: pointer;

                                        input {
                                            margin-top: 2px;
                                            outline: none;
                                        }
                                    }

                                    label:has(input:focus-visible) {
                                        outline: 2px solid var(--primary-color);
                                        border-radius: 3px;
                                    }

                                    &:hover {
                                        background: var(--color-hover-background);

                                        label {
                                            color: var(--primary-color);
                                        }
                                    }
                                }


                            }

                            &.shipping {
                                ul {
                                    li.country {
                                        font-weight: 700;
                                    }

                                    li:not(.country) {
                                        label {
                                            padding-left: 20px;
                                        }
                                    }
                                }
                            }

                            &.price-range {

                                &:not(:has(div[hidden])) {
                                    >button[type="button"]:after {
                                        transform: rotate(180deg);
                                    }
                                }

                                &:has(div[hidden]) {
                                    >div {
                                        display: none;
                                    }

                                    >button[type="button"] {
                                        &:after {
                                            transform: rotate(0deg);
                                        }
                                    }
                                }

                                >div {
                                    position: absolute;
                                    top: 52px;
                                    background: var(--color-white);
                                    z-index: 5000;
                                    box-shadow: rgba(55, 55, 55, 0.25) 2px 8px 16px -2px, rgba(0, 0, 0, 0.25) 0px 4px 4px 0px;
                                    border-radius: 8px;
                                    max-height: 400px;
                                    min-width: 100%;
                                    width: fit-content;
                                    font-size: 14px;
                                    font-weight: 500;
                                    padding: 1rem;
                                    display: flex;
                                    flex-direction: column;
                                    gap: 4px;

                                    output {
                                        color: var(--color-dark);
                                        font-size: 1rem;
                                        font-weight: 500;
                                        text-align: center;
                                        padding-block: 0 1rem;
                                    }

                                    .slider {
                                        display: flex;

                                        .display-range {
                                            position: absolute;
                                            height: 2px;
                                            left: 2px;
                                            ;
                                            width: 100%;
                                            background-color: #000;
                                            pointer-events: none;
                                            top: 2px;
                                        }

                                        input {
                                            -webkit-appearance: none;
                                            appearance: none;
                                            height: 2px;
                                            width: 100%;
                                            position: absolute;
                                            background: none;
                                            pointer-events: none;
                                            outline: none;

                                            &:first-of-type {
                                                background-color: rgba(119, 119, 120, 0.3)
                                            }
                                        }

                                        input::-webkit-slider-thumb {
                                            -webkit-appearance: none;
                                            pointer-events: all;
                                            width: 20px;
                                            height: 20px;
                                            background-color: black;
                                            border-radius: 50%;
                                            cursor: grab;
                                        }

                                        input::-moz-range-thumb {
                                            -webkit-appearance: none;
                                            pointer-events: all;
                                            width: 20px;
                                            height: 20px;
                                            background-color: black;
                                            border-radius: 50%;
                                            cursor: grab;
                                        }

                                        input:focus-visible::-webkit-slider-thumb {
                                            background-color: var(--primary-color);
                                        }

                                        input:focus-visible::-moz-range-thumb {
                                            background-color: var(--primary-color);
                                        }

                                        input:hover::-webkit-slider-thumb {
                                            background-color: var(--primary-color);
                                            cursor: ew-resize;
                                        }

                                        input:hover::-moz-range-thumb {
                                            background-color: var(--primary-color);
                                            cursor: ew-resize;
                                        }

                                    }

                                    .legend {
                                        margin-top: 1rem;
                                        display: flex;
                                        justify-content: space-between;
                                        color: var(--color-dark);
                                        font-size: 1rem;
                                        font-weight: 500;
                                        text-align: center;
                                        padding-block: 0 1rem;
                                    }

                                    hr {
                                        border: none;
                                        border-top: 1px solid #D9DCE1;
                                        margin: 0 0 1rem;
                                        padding: 0;
                                    }

                                    button {
                                        background: var(--primary-color);
                                        cursor: pointer;
                                        font-size: 12px;
                                        padding: 20px;

                                        &:hover {
                                            background: var(--secondary-color);
                                        }
                                    }
                                }
                            }
                        }

                    }
                }
            }

            @media (width <=800px) {

                & {
                    margin-bottom: 0px;
                }

                & .filters {
                    display: none;
                }

                .controls {
                    gap: 10px;

                    >button.filters-clear {
                        display: none;
                    }

                    >button.filters-toggle {
                        display: block;
                        cursor: pointer;

                        img,
                        span {
                            pointer-events: none;
                        }

                        span {
                            position: absolute;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                            top: -10px;
                            right: -5px;
                            font-weight: 700;
                            width: 25px;
                            height: 25px;
                            border-radius: 100%;
                            background-color: var(--primary-color);
                            color: var(--color-white);
                            text-decoration: none;
                        }

                        span:empty {
                            display: none;
                        }
                    }

                }

                & .filters .keyword {

                    button {

                        img,
                        span {
                            pointer-events: none;
                        }

                        span {
                            background-color: var(--primary-color);
                            color: var(--color-white);
                            text-decoration: none;
                        }
                    }

                }

                &.open .filters {
                    position: fixed;
                    display: flex;
                    bottom: 0px;
                    z-index: 9000;
                    left: 0px;
                    gap: 0;

                    section.tags {
                        display: none;
                    }

                    section.options {
                        position: relative;
                        padding: 24px;
                        background: #FFF;
                        padding-bottom: 75px;

                        button.close {
                            position: absolute;
                            display: block;
                            min-width: auto;
                            top: -10px;
                            right: 5px;
                            background: none;
                            border: none;
                            padding: 0 16px;
                            cursor: pointer;
                            font-size: 16px;
                            color: #646C76;
                            width: 34px;
                            height: 34px;
                            background: url(../img/icons/icon-close.svg) no-repeat center;
                            background-size: 14px 14px;
                        }

                        >h2 {
                            display: block;
                            text-align: center;
                            margin: 0;
                            font-size: 28px;
                            font-weight: 700;
                            margin-bottom: .75rem;
                        }

                        >button {
                            display: block;
                            margin-top: 1rem;
                            min-width: 200px;
                        }

                        .dropdowns {
                            flex-direction: column;
                            gap: 23px;
                            margin-bottom: 2rem;

                            section {
                                ul {
                                    max-height: 250px;
                                }
                            }
                        }
                    }

                    &::before {
                        background: #00000087;
                        display: block;
                        content: ' ';
                        width: 100vw;
                        height: 100vh;
                        left: 0px;
                        top: 0px;
                        z-index: 7000;
                    }
                }

            }
        }
    }


    ul.gifts {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 32px;
        margin: 0;
        padding: 0;
        padding-block-end: 40px;
        list-style: none;

        &:empty {
            display: none;
        }

        section.gift {
            display: flex;
            flex-direction: column;
            border-radius: 1rem;
            overflow: hidden;
            box-shadow: 0 2px 50px 0 rgba(0, 0, 0, 0.18);
            color: var(--color-dark);
            height: 100%;

            .img {
                position: relative;

                img {
                    width: 100%;
                    height: auto;
                }

                p {
                    position: absolute;
                    background: #D9DCE1;
                    border-radius: 8px;
                    padding: 4px 16px;
                    font-style: normal;
                    font-weight: 700;
                    font-size: 14px;
                    top: 24px;
                    left: 24px;
                    margin: 0;
                    text-transform: uppercase;
                }
            }

            .content {
                padding: 24px;
                display: flex;
                flex-direction: column;
                height: 100%;
                flex: 1 1 auto;

                >div {
                    flex: 0 0 auto;

                    &.text {
                        flex: 1 1 auto;
                    }
                }

                h2,
                p.price,
                p.by {
                    font-weight: 700;
                    font-size: 22px;
                    margin: 0;
                    padding: 0;
                }

                h2 {
                    a {
                        color: inherit;

                        &:hover {
                            color: var(--primary-color);
                        }
                    }
                }

                a {
                    color: var(--primary-color);
                    text-decoration: none;

                    &:hover {
                        color: var(--secondary-color);
                        text-decoration: underline;
                    }
                }

                p.price {
                    font-size: 20px;
                    margin-bottom: 12px;
                }

                p.by {
                    font-size: 16px;
                }

                p {
                    font-weight: 300;
                    margin-block: 1rem;
                    text-wrap: pretty;

                    button {
                        background: none;
                        border: none;
                        font-family: inherit;
                        color: var(--primary-color);
                        font-style: normal;
                        font-weight: 700;
                        font-size: 1rem;
                        display: inline-flex;
                        align-items: center;
                        padding: 0;

                        &:hover {
                            color: var(--secondary-color);
                            text-decoration: underline;
                            cursor: pointer;
                        }

                        &:after {
                            flex: 0 0 auto;
                            content: ' ';
                            width: 16px;
                            height: 20px;
                            background: url(../img/icons/next-chevron.svg) no-repeat center;
                            border: 1px solid var(--border-color);
                            border-radius: 100%;
                            display: inline-block;
                        }
                    }
                }

                .fulltext {
                    display: none;
                }

                a.button {
                    color: var(--color-white);

                }

                small {
                    margin-block-start: 1rem;
                    display: block;
                    font-size: 10px;
                    font-weight: 300;
                    color: #282828;

                    a {
                        text-decoration: underline;
                    }
                }

            }

        }

    }

    @media (width <=600px) {

        main {
            padding-top: 40px;

            .layout-background {}
        }

        ul.gifts {

            section.gift {

                .img {

                    p {
                        font-size: 12px;
                        top: 16px;
                        left: 16px;
                    }
                }

                .content {
                    padding: 16px;

                    h2 {
                        font-size: 20px;
                    }

                    p.price {
                        font-size: 18px;
                    }

                    p.by {
                        font-size: 14px;
                    }

                    p {
                        font-size: 14px;

                        button {
                            font-size: 14px;
                        }
                    }

                    small {
                        margin-block-start: 1rem;
                        display: block;
                        font-size: 10px;
                        color: #333;
                    }

                }

            }

        }

    }

    ul.disable-loadmore+button.loadmore {
        display: none;
    }

    section.noresults {
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;

        p {
            font-size: 24px;
            line-height: 130%;
            text-align: center;
        }

        button {
            display: none;
            margin-block: 24px 12px;
        }

        img {
            max-width: 360px;
            height: auto;
        }

        @media (width <=800px) {
            & {
                p {
                    font-size: 22px;
                    margin: 0;
                }

                img {
                    max-width: 220px;
                }

                button {
                    display: block;
                }
            }
        }

    }

    &:has(.gifts.noresults) {
        .loadmore {
            display: none !important;
        }
    }

    &:not(:has(.gifts.noresults)) {
        section.noresults {
            display: none !important;
        }
    }


}

/* about */
body.about {

    main {

        section.hero {
            position: relative;
            width: 100%;
            height: 550px;


            figure {
                position: relative;
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0%;

                img {
                    position: absolute;
                    top: 0px;
                    left: 0px;
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }

                div.layout-center {
                    position: relative;
                    width: 100%;
                    height: 100%;
                }

                figcaption {
                    position: absolute;
                    border-radius: 10px;
                    background: rgba(254, 254, 254, 0.80);
                    color: var(--color-dark);
                    top: 50%;
                    transform: translateY(-50%);
                    right: 0px;
                    padding: 16px 24px;

                    @media (width <=1248px) {
                        right: 20px;
                    }

                    p {
                        margin: 0;
                        padding: 0;
                        font-weight: 400;
                        font-size: 14px;

                        .name {
                            font-size: 24px;
                            font-weight: 700;
                            display: block;
                        }

                        .role {
                            font-size: 16px;
                            display: block;
                        }
                    }


                }
            }

            h1 {
                display: block;
                position: absolute;
                bottom: 24px;
                margin: 0;
                padding: 0;
                font-size: 48px;
                font-weight: 700;
                background-color: var(--primary-color);
                color: var(--color-white);
                padding: 9px 16px;
            }

            @media (width <=800px) {

                 & {
                     height: 70dvh;  
                     min-height: 600px;
                }
                
                figure {

                    figcaption {
                        top: 24px;
                        transform: none;
                        right: 24px;

                        p {
                            font-size: 12px;

                            .name {
                                font-size: 20px;
                            }

                            .role {
                                font-size: 14px;
                            }
                        }
                    }
                }

                h1 {
                    font-size: 32px;
                    width: calc(100% - 48px);
                    text-wrap: balance;
                }

            }
        }

        .gifts-wrapper {
            background-color: #F5F6F7;
        }

        section.content {
            background-color: #FFF;
            padding: 40px;

            h2 {
                font-weight: 700;
                font-size: 40px;
                line-height: 130%;
                margin-block: 0px 4px;
            }

            p {
                strong.lg {
                    font-size: 22px;
                    font-weight: 700;
                    margin-block: 0px 32px;
                }

                font-size: 18px;
                font-weight: 300;
                line-height: 150%;

                 span {
                    white-space: nowrap
                }
            }

            .quotes {
                display: flex;
                gap: 32px;
                margin-block: 32px;

                blockquote {
                    background: var(--primary-color);
                    background-image: url(../img/quote-top.svg), url(../img/quote-bottom.svg);
                    background-repeat: no-repeat, no-repeat;
                    background-position: 20px top, calc(100% - 20px) bottom;
                    padding: 56px 40px;
                    margin: 0;
                    border-radius: 24px;
                    width: 100%;

                    p {
                        color: #FFF;
                        font-weight: 400;
                        line-height: 130%;
                        font-size: 22px;
                        margin: 0;
                        padding: 0;
                    }
                }

            }

            @media (width <=600px) {
                & {
                    padding: 24px;

                    h2 {
                        font-size: 28px;
                    }

                    h3 {
                        font-size: 20px;
                        margin-block: 0px 24px;
                    }

                    .quotes {
                        flex-direction: column;
                        gap: 8px;
                        margin-block: 24px;

                        blockquote {
                            padding: 56px 24px;

                            p {
                                font-size: 20px;
                            }
                        }

                    }
                }
            }

        }

        div.ribbon {
            width: 100%;
            margin-block-emd: 40px;

            img {
                width: 100%;
                height: auto;
            }

        }

        section.timeline {
            padding-bottom: 80px;

            >h2 {
                font-size: 48px;
                text-align: center;
                font-weight: 700;
                text-wrap: pretty;
            }

            ol.years {
                margin: 0;
                padding: 0;
                list-style: none;

                li {
                    display: grid;
                    grid-template-columns: 1fr 1fr;
                    grid-template-rows: 80px 1fr;
                    padding-block: min(5vw, 80px);

                    .heading {
                        grid-area: 1 / 1 / 1 / 1;
                        display: flex;
                        gap: 16px;
                        align-items: center;

                        h3 {
                            font-weight: 700;
                            font-size: 36px;
                            color: var(--primary-color);
                            margin: 0;
                        }

                        .line {
                            height: 2px;
                            background: #646C76;
                            width: 100%;
                            display: flex;
                            align-items: center;

                            &::before {
                                content: '';
                                display: block;
                                width: 12px;
                                height: 12px;
                                border-radius: 100%;
                                background: #646C76;
                            }
                        }

                    }

                    .img {
                        grid-area: 1 / 2 / 3 / 2;
                        display: flex;
                        align-items: center;
                        justify-content: flex-end;
                        padding-inline: 40px 0;

                        img {
                            display: block;
                            border-radius: 40px;
                            width: 100%;
                            max-width: 480px;
                            aspect-ratio: 481 / 360;
                            height: auto;
                            object-fit: cover;
                        }
                    }

                    div.milestone {
                        grid-area: 2 / 1 / 2 / 1;
                        display: flex;
                        padding-inline: 0 40px;
                        justify-content: flex-start;

                        div {
                            max-width: 480px;

                            h4 {
                                font-weight: 700;
                                line-height: 130%;
                                font-size: 36px;
                                margin-block: 0px 32px;
                            }

                            p {
                                font-weight: 300;
                                line-height: 150%;
                                font-size: 18px;
                            }

                        }
                    }

                    @media (width > 800px) {

                        &.alt {

                            .heading {
                                grid-area: 1 / 2 / 1 / 2;
                                display: flex;
                                flex-direction: row-reverse;
                                align-items: center;

                                .line {
                                    height: 2px;
                                    background: #646C76;
                                    width: 100%;
                                    display: flex;
                                    align-items: center;
                                    flex-direction: row-reverse;
                                }

                            }

                            .img {
                                grid-area: 1 / 1 / 3 / 1;
                                padding-inline: 0 40px;
                                justify-content: flex-start;
                            }

                            div.milestone {
                                grid-area: 2 / 2 / 2 / 2;
                                padding-inline: 40px 0;
                                justify-content: flex-end;
                            }


                        }

                    }

                }

                &::before {
                    position: absolute;
                    content: '';
                    display: block;
                    width: 2px;
                    left: 50%;
                    margin-left: -1px;
                    height: 100%;
                    background: #646C76;
                }

            }

            @media (width <=800px) {

                & {
                    padding-bottom: 40px;

                    >h2 {
                        font-size: 32px;
                    }

                    ol.years {

                        li {
                            padding-block: 20px;
                            display: block;

                            .heading {
                                h3 {
                                    font-size: 26px;
                                }

                                margin-bottom: 16px;
                            }

                            .img {
                                padding-inline: 0 50px;
                                margin-bottom: 40px;
                                justify-content: flex-start;

                                img {
                                    border-radius: 24px;
                                }
                            }

                            div.milestone {
                                grid-area: 2 / 1 / 2 / 1;
                                display: flex;
                                padding-inline: 0 50px;

                                div {
                                    max-width: 480px;

                                    h4 {
                                        font-size: 26px;
                                        margin-block: 0px 24px;
                                        text-wrap: pretty;
                                    }

                                    p {
                                        font-size: 16px;
                                    }

                                }
                            }


                        }

                        &::before {
                            left: auto;
                            right: 0px;
                            margin-left: 0px;
                        }

                    }

                }

            }


        }

    }

}

/* footer */
footer {
    background-color: var(--secondary-color);
    color: var(--color-white);

    section {

        &:has(summary:hover) {
            background: var(--color-dark);
        }

        details {
            padding: 24px 0;



            summary {
                font-weight: bold;
                cursor: pointer;
                display: flex;
                gap: 8px;

                &::before {
                    flex: 0 0 auto;
                    content: ' ';
                    width: 24px;
                    height: 24px;
                    background: url(../img/icons/chevron.svg) no-repeat center;
                    border: 1px solid var(--border-color);
                    border-radius: 100%;
                    display: inline-block;
                }

                &::-webkit-details-marker {
                    display: none;
                }

                &:hover {
                    text-decoration: underline;
                }
            }

            &[open] summary::before {
                background-image: url(../img/icons/chevron.svg);
                transform: rotate(180deg);
            }
        }
    }

    nav {
        background-color: var(--primary-color);

        div {
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 88px;

            ul {
                list-style: none;
                display: flex;
                margin: 0;
                padding: 0;
                gap: 32px;
                width: 100%;
            }

            a {
                text-decoration: none;
                color: var(--color-white);

                &:hover {
                    text-decoration: underline;
                }
            }

            a[target="_blank"] {
                display: flex;
                gap: 8px;
                align-items: center;

                &:hover {
                    text-decoration: underline;
                }

                &:before {
                    content: '';
                    display: block;
                    width: 15px;
                    height: 15px;
                    background: url(../img/icons/external.svg) no-repeat center center;
                    background-size: contain;
                }
            }

            li:last-child {
                margin-left: auto;
            }
        }
    }

    @media (width <=600px) {

        nav {

            div {
                flex-direction: column;
                align-items: flex-start;
                height: auto;
                gap: 32px;
                padding-block: 32px;

                ul {
                    list-style: none;
                    display: flex;
                    flex-direction: column;
                    margin: 0;
                    padding: 0;
                    gap: 32px;
                    width: 100%;
                    padding-bottom: 32px;
                    ;
                    border-bottom: 1px solid var(--color-white);
                }

                a {
                    text-decoration: none;
                    color: var(--color-white);
                }

                a[target="_blank"] {
                    display: flex;
                    gap: 8px;
                    align-items: center;
.
                    &:before {
                        content: '';
                        display: block;
                        width: 15px;
                        height: 15px;
                        background: url(../img/icons/external.svg) no-repeat center center;
                        background-size: contain;
                    }
                }

                li:last-child {
                    margin-left: 0;
                }
            }
        }
    }

}