@charset "utf-8";
/* CSS Document */
/* ==========================================================
   BASE ELEMENTS
   ========================================================== */
html{
    scroll-behavior:smooth;
    -webkit-text-size-adjust:100%;
}
@media (hover: none) and (pointer: coarse) {

    * {
        -webkit-tap-highlight-color: transparent;
    }

    a,
    button,
    input,
    textarea,
    select {
        outline: none;
    }

    :focus:not(:focus-visible) {
        outline: none;
    }

}
body {

    margin: 0;
    padding: 0;

    background: var(--background);
    color: var(--text);

    font-family: var(--font-family);
    font-size: var(--font-size-body);

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
padding-bottom: var(--footer-height);
display: flex;
    flex-direction: column;
    min-height: 100vh;
}
*,
*::before,
*::after {
    box-sizing: border-box;
}
a,
a:visited,
a:hover,
a:active {

    text-decoration: none;
-webkit-tap-highlight-color: transparent;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
button {
    -webkit-tap-highlight-color: transparent;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}
main{

    display:block;

}

section{

    position:relative;

}
.text-link {
    color: var(--primary);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.text-link:hover {
    color: var(--primary-hover);
}
.container{

    width:min(var(--container-width), calc(100% - 40px));

    margin: 10px auto;

}

.hidden{

    display:none !important;

}

.text-center{

    text-align:center;

}

.text-left{

    text-align:left;

}

.text-right{

    text-align:right;

}

.w-100{

    width:100%;

}

.mb-0{

    margin-bottom:0 !important;

}

.mt-0{

    margin-top:0 !important;

}

.back-to-top {
    position: fixed;
    right: 18px;
    bottom: 68px;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 2px solid #000;
    background: var(--primary-hover);
    color: #222;
    font-size: 24px;
    font-weight: 800;
    box-shadow: 0 4px 12px rgba(0,0,0,.25);
    cursor: pointer;
    z-index: 9998;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease;
}
.back-to-top span {
    position: relative;
    top: -4px;
}
.back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}