/* --------------------
 Layout
-------------------- */
@media (min-height: 631px) {
    html, body {
        overflow: hidden;
    }
}

.layout {
    height: 100vh;
    height: 100svh;
    width: 100%;
}

/* --------------------
 Header
-------------------- */
.header {
    background-color: #1d2087;
    height: 50px;
    left: 0;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 99;
}

@media (min-width: 768px) {
    .header {
        height: 65px;
    }
}

.header-container {
    align-items: stretch;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 30px;
    height: 100%;
    justify-content: flex-start;
    padding: 0 20px;
}

@media (min-width: 768px) {
    .header-container {
        column-gap: 40px;
        padding-left: 30px;
        padding-right: 30px;
    }
}

.header__logo {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    width: 80px;
}

@media (min-width: 768px) {
    .header__logo {
        width: 106px;
    }
}

.header__menu {
    align-items: stretch;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 5px;
    height: 100%;
    justify-content: center;
}

.header__menu__item {
    height: 100%;
    overflow: hidden;
    padding: 10px 0 0;
}

.header__menu__item__link {
    align-items: center;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    color: #ffffff;
    display: flex;
    flex-flow: row nowrap;
    font-size: 1.2rem;
    font-weight: 700;
    height: 101%;
    justify-content: center;
    line-height: 1.2;
    padding: 0 10px;
    text-align: center;
    text-decoration: none;
    transition: color .35s cubic-bezier(.645, .045, .355, 1) 0s, background-color .35s cubic-bezier(.645, .045, .355, 1) 0s;
}

@media (min-width: 768px) {
    .header__menu__item__link {
        border-top-left-radius: 22px;
        border-top-right-radius: 22px;
        font-size: 1.8rem;
        padding-left: 20px;
        padding-right: 20px;
    }
}

.header__menu__item__link:focus {
    background-color: #f2f2f2;
    color: #1d2087;
}

@media (hover: hover) and (pointer: fine) {
    .header__menu__item__link:hover {
        background-color: #f2f2f2;
        color: #1d2087;
    }
}

.header__menu__item__link.is-active {
    background-color: #f2f2f2;
    color: #1d2087;
}

/* --------------------
 Perfect scroll
-------------------- */
.js-ps {
    padding: 0;
    position: relative;
}

.ps--active-x {
    padding-bottom: 10px;
}

@media (min-width: 768px) {
    .ps--active-x {
        padding-bottom: 14px;
    }
}

.ps--active-y {
    padding-right: 18px;
}

.ps__rail-x {
    background-color: #cccccc !important;
    border-radius: 2px;
    border-top: 4px solid #ffffff;
    height: 10px;
    opacity: 1 !important;
    z-index: 2;
}

@media (min-width: 768px) {
    .ps__rail-x {
        height: 14px;
    }
}

.ps__thumb-x {
    background-color: #6a6c6a !important;
    border-left: 2px solid #cccccc;
    border-radius: 2px;
    border-right: 2px solid #cccccc;
    bottom: 1px;
    height: 4px;
}

@media (min-width: 768px) {
    .ps__thumb-x {
        bottom: 2px;
        height: 6px;
    }
}

.ps__rail-y {
    background-color: #cccccc !important;
    border-left: 4px solid #ffffff;
    border-radius: 0;
    opacity: 1 !important;
    width: 10px;
    z-index: 2;
}

@media (min-width: 768px) {
    .ps__rail-y {
        width: 14px;
    }
}

.ps__thumb-y {
    background-color: #6a6c6a !important;
    border-bottom: 2px solid #cccccc;
    border-radius: 0;
    border-top: 2px solid #cccccc;
    right: 1px;
    width: 4px;
}

@media (min-width: 768px) {
    .ps__thumb-y {
        right: 2px;
        width: 6px;
    }
}
