/* =========================================================
   GLOBAL RESET
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}


/* =========================================================
   HTML
   ========================================================= */

html {
    scroll-behavior: smooth;
}


/* =========================================================
   BODY
   ========================================================= */

body {
    margin: 0;

    font-family: var(--font-body);

    color: var(--color-text);
    background: var(--color-white);

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}


/* =========================================================
   LINKS
   ========================================================= */

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


/* =========================================================
   FORM ELEMENTS
   ========================================================= */

button,
input,
textarea,
select {
    font: inherit;
}


/* =========================================================
   IMAGES
   ========================================================= */

img {
    max-width: 100%;
    display: block;
}


/* =========================================================
   BUTTONS
   ========================================================= */

button {
    border: 0;
    background: none;
    cursor: pointer;
}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

/*
   Respect users who prefer reduced motion.
   We will add the actual animations later.
*/

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

}

/* =========================================================
   DOCTATECH
   SCROLL TO TOP
   ========================================================= */

.scroll-top {
    position: fixed;

    right: 24px;
    bottom: 24px;

    z-index: 900;

    width: 46px;
    height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    background: var(--color-primary);
    color: var(--color-accent);

    border: 1px solid rgba(255, 198, 0, 0.25);
    border-radius: 50%;

    font-size: 14px;

    cursor: pointer;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(12px);

    box-shadow:
        0 10px 28px rgba(74, 0, 75, 0.20);

    transition:
        opacity 220ms ease,
        visibility 220ms ease,
        transform 220ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}


.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform: translateY(0);
}


.scroll-top:hover {
    background: #5d075e;

    transform: translateY(-3px);

    box-shadow:
        0 14px 32px rgba(74, 0, 75, 0.26);
}


.scroll-top:active {
    transform: translateY(-1px);
}


.scroll-top:focus-visible {
    outline: 3px solid rgba(255, 198, 0, 0.35);
    outline-offset: 3px;
}


@media (max-width: 600px) {

    .scroll-top {
        right: 16px;
        bottom: 16px;

        width: 42px;
        height: 42px;

        font-size: 13px;
    }

}