﻿/*= FONTS =*/

@font-face {
    font-family: Univia;
    src: url('/Recursos/ZeroContact/fonts/univia/Univia W03 Light.ttf');
    font-weight: lighter;
}

@font-face {
    font-family: Univia;
    src: url('/Recursos/ZeroContact/fonts/univia/Univia W03 Regular.ttf');
    font-weight: normal;
}

@font-face {
    font-family: Univia;
    src: url('/Recursos/ZeroContact/fonts/univia/Univia W03 Medium.ttf');
    font-weight: 500;
}

@font-face {
    font-family: Univia;
    src: url('/Recursos/ZeroContact/fonts/univia/Univia W03 Bold.ttf');
    font-weight: bold;
}

@font-face {
    font-family: Barlow;
    src: url('/Recursos/ZeroContact/fonts/barlow/Barlow-Light.ttf');
    font-weight: lighter;
}

@font-face {
    font-family: Barlow;
    src: url('/Recursos/ZeroContact/fonts/barlow/Barlow-Regular.ttf');
    font-weight: normal;
}

@font-face {
    font-family: Barlow;
    src: url('/Recursos/ZeroContact/fonts/barlow/Barlow-Medium.ttf');
    font-weight: 500;
}

@font-face {
    font-family: Barlow;
    src: url('/Recursos/ZeroContact/fonts/barlow/Barlow-Bold.ttf');
    font-weight: bold;
}

p, h1, h2, h3, h4, div, label {
    font-family: Barlow;
    font-weight: 500;
}

button, button p, .z0-button-label {
    font-family: Univia;
    font-weight: bold;
}

@media screen and (max-width: 425px) {
    * {
        font-size: 104%;
    }
}


/*= DIALOGS =*/

/* Dialog */

.z0-dialog-background {
    z-index: 50;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.08)
}

.z0-dialog {
    position: absolute;
    border-radius: 5px;
    border: 1px solid lightgray;
    display: flex;
    width: 98vw;
    max-width: 70em;
    flex-direction: column;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 1px 1px 40px 0px rgba(0, 0, 0, 0.15);
    background-color: white;
}

.z0-dialog-danger .z0-dialog-header {
    border-width: 2px;
    border-color: red;
    border-image: linear-gradient(to right, lightgray, red, lightgray) 1;
}

.z0-dialog-header {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid lightgray;
    justify-content: space-between;
    align-items: center;
}

.z0-dialog-title {
    margin: 0.5em 0.75em;
    font-size: calc(1em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
}

.z0-dialog-content {
    padding: 1em;
    font-size: calc(1em + 0.4vw);
}

.z0-dialog-actions-bar {
    display: flex;
    flex-direction: row-reverse;
    margin: 2%;
}

    .z0-dialog-actions-bar button {
        border: none;
        flex: 1;
    }

.z0-dialog-danger .z0-dialog-actions-bar button:first-of-type {
    color: red;
}

.z0-dialog-danger .z0-dialog-actions-bar button:last-of-type {
    color: #555;
}

.z0-error-dialog-details-wrapper {
    padding: 0 5px;
    opacity: 0.8;
}

.z0-error-dialog-details {
    border: 1px solid lightgray;
    padding: 5px;
    max-height: calc(50 * var(--vh, 1vh));
    overflow-y: scroll;
    transform: translateZ(0);
    overscroll-behavior-y: none;
}

.z0-dialog-close-button {
    min-height: 1.2em;
    min-width: 1.2em;
    height: calc(3em + calc(0.8 * var(--vh, 1vh)) + 0.6vw);
    width: calc(3em + calc(0.8 * var(--vh, 1vh)) + 0.6vw);
    margin-right: 1%;
    border-radius: 5px;
    border: none;
    background: url('/Recursos/ZeroContact/icons/btn-cerrar.svg') center no-repeat, transparent;
    background-size: 35%;
    transition: background 250ms ease-in-out, transform 150ms ease;
    -webkit-appearance: none;
    -moz-appearance: none;
}

    .z0-dialog-close-button:hover,
    .z0-dialog-close-button:focus {
        background-color: whitesmoke;
    }

    .z0-dialog-close-button:focus {
        outline: none;
        box-shadow: inset 0px 0px 0px 4px rgba(0,0,0,0.1);
    }

/* External site dialog */

.z0-external-site-dialog .z0-dialog-content {
    height: calc(90 * var(--vh, 1vh));
    padding: 0;
}

.z0-external-site-dialog #external-site-frame {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 5px;
}

/* Bottom sheet */

.z0-bottom-sheet {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%);
    display: flex;
    flex-flow: column nowrap;
    width: 100vw;
    height: calc(90 * var(--vh, 1vh));
    max-width: 100%;
    max-height: 100%;
    background-color: white;
    box-shadow: 0 -5px 20px 0 rgba(0, 0, 0, 0.1);
}

.z0-bottom-sheet-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid lightgray;
    padding: 1% 0;
    height: 8%;
}

.z0-bottom-sheet-title {
    margin-left: calc(0.5em + 2%);
    margin-bottom: 0;
    margin-top: 0;
    font-size: calc(1em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
    flex: 1;
}

.z0-bottom-sheet-content {
    display: flex;
    flex-flow: column wrap;
    height: 92%;
    padding: 1% 2.5%;
}

/* Responsive bottom sheet sizes */

@media screen and (orientation:landscape) {
    .z0-bottom-sheet {
        width: 90vw;
        height: calc(93 * var(--vh, 1vh));
    }
}

@media screen and (max-width:425px) {
    .z0-bottom-sheet {
        width: 100vw;
        height: calc(100 * var(--vh, 1vh));
    }
}

/* Self-Contained Banner */

.z0-self-contained-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 2px solid lightgray;
    padding: 0.5em;
    background-color: rgba(255, 255, 255, 0.5)
}

    .z0-self-contained-banner button {
        margin-left: 1em;
        padding: 0.7em;
        border: none;
    }

/* Scrollable text area */

.z0-scrollable-text-area {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.z0-text-area-top-fading {
    width: 100%;
    box-shadow: 0 0 15px 15px white;
}

.z0-text-area-bottom-fading {
    width: 100%;
    box-shadow: 0 0 15px 15px white;
}

.z0-text-area {
    text-align: justify;
    position: relative;
    overflow-y: scroll;
    padding: 15px 0;
    transform: translateZ(0);
}

.z0-text-area-scrollbar {
}

.z0-scrollbar-indicator {
}


/*= DROPDOWN =*/

/* Dropdown */

.z0-dropdown {
    width: 100%;
    border: 1px solid gray;
    background-color: rgba(0, 0, 0, 0.01);
    border-radius: 100em;
    padding: calc(0.5 * var(--vh, 1vh)) 1em;
    font-size: calc(0.5em + 0.6vw + calc(0.5 * var(--vh, 1vh)));
    transition: box-shadow 70ms ease-in-out;
    background: url('/Recursos/ZeroContact/icons/dropdown-arrow.svg') no-repeat 96%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: box-shadow 70ms ease-in-out;
}

    .z0-dropdown:focus,
    .z0-dropdown:hover,
    .z0-dropdown:active {
        border-color: #1975E8;
        box-shadow: 0 0 0 2px inset #1975E8;
        outline: none;
    }

.z0-dropdown-wrapper[disabled] {
    opacity: 0.6;
    pointer-events: none;
}

@media screen and (min-width: 1024px) {
    .z0-dropdown-wrapper {
        margin-top:3.3rem;
    }

    /* Dropdown dialog */

    .z0-dropdown-list {
        position: absolute;
        border-radius: 5px;
        border: 1px solid lightgray;
        display: flex;
        width: 95vw;
        max-width: 40em;
        max-height: calc(90 * var(--vh, 1vh));
        flex-direction: column;
        top: 50%;
        left: 50%;
        transform: translate3d(-50%, -50%, 0);
        box-shadow: 1px 1px 40px 0px rgba(0, 0, 0, 0.15);
        background-color: white;
        z-index: 10;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .z0-dropdown-grouplabel {
        margin: 0;
        padding: 0.7em 1.5em;
        font-size: calc(0.5em + 0.4vw + calc(0.533 * var(--vh, 1vh)));
        color: gray;
    }

    .z0-dropdown-option {
        font-weight: bold;
        font-size: calc(0.8em + 0.4vw + calc(0.533 * var(--vh, 1vh)));
        padding: 1em 2em;
        border-top: 1px solid lightgray;
        cursor: pointer;
        transition: background 100ms ease-in-out, transform 100ms ease;
    }

        .z0-dropdown-option:hover,
        .z0-dropdown-option:focus {
            background-color: whitesmoke;
            transition: background 100ms ease-in-out, transform 100ms ease;
        }

        .z0-dropdown-option:active {
            background-color: #1975E8;
            color: white;
        }

        .z0-dropdown-option[disabled] {
            color: lightgray;
            pointer-events: none;
        }

    @media screen and (max-width: 425px) {
        .z0-dropdown-option {
            font-size: 150%;
            padding: 1em 1.2em;
        }
    }


    /*= INPUT =*/

    /* Input box */

    .z0-input-box-header {
        display: flex;
        align-items: center;
    }

    .z0-input-box-label {
        position: relative;
        left: 0.7em;
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        color: rgba(0, 0, 0, 0.7);
    }

    .z0-input-box-icon {
        width: 3.5vw;
        min-width: 1.5em;
        margin-bottom: 1.5%;
        filter: grayscale(50%) brightness(70%);
    }

    .z0-input-box-wraper input {
        width: 100%;
        border: 1px solid gray;
        background-color: rgba(0, 0, 0, 0.01);
        border-radius: 100em;
        padding: calc(0.5 * var(--vh, 1vh)) 1em;
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        transition: box-shadow 70ms ease-in-out;
    }

        .z0-input-box-wraper input:focus,
        .z0-input-box-wraper input:hover,
        .z0-input-box-wraper input:active {
            border-color: #1975E8;
            box-shadow: 0 0 0 2px inset #1975E8;
            outline: none;
        }

    .z0-input-box-wraper textarea {
        width: 100%;
        border: 1px solid gray;
        background-color: rgba(0, 0, 0, 0.01);
        border-radius: 10px;
        padding: calc(0.5 * var(--vh, 1vh)) 0.5em;
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        transition: box-shadow 70ms ease-in-out;
        resize: none;
    }

        .z0-input-box-wraper textarea:focus,
        .z0-input-box-wraper textarea:hover,
        .z0-input-box-wraper textarea:active {
            border-color: #1975E8;
            box-shadow: 0 0 0 2px inset #1975E8;
            outline: none;
        }

    .z0-input-box-tip {
        position: relative;
        left: 1.5em;
        height: 0;
        font-size: calc(0.5em + 0.35vw + calc(0.466 * var(--vh, 1vh)));
        color: rgba(0, 0, 0, 0.5);
        white-space: nowrap;
    }

    /* Radio group */

    .z0-radio-group-wrapper {
        display: flex;
        flex-direction: column;
    }

    .z0-radio-group {
        display: flex;
        flex-flow: row wrap;
        align-items: baseline;
    }

    .z0-radio-group-label {
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        margin-bottom: 3%;
        color: rgba(0, 0, 0, 0.7);
    }

    .z0-radio-value {
        display: flex;
        flex-flow: row nowrap;
        align-items: center;
        padding: 3% 5%;
        margin-right: 5%;
        border-radius: 0.5em;
        cursor: pointer;
        transition: background-color 100ms ease-in-out;
    }

        .z0-radio-value label {
            font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
            margin-left: 10%;
            margin-bottom: 0;
            cursor: pointer;
        }

        .z0-radio-value.selected {
            background-color: #1975E82E;
        }

    .z0-radio-button {
        display: block;
        width: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        height: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        min-width: 0.8em;
        min-height: 0.8em;
        border: 0.1em solid gray;
        border-radius: 50%;
        background-color: whitesmoke;
        margin-left: -10%;
        transition: background-color 100ms ease-in-out;
    }

        .z0-radio-button:after {
            content: "";
            position: relative;
            top: 25%;
            left: 25%;
            display: block;
            border-radius: 50%;
            background-color: white;
            box-shadow: 0 2px 2px rgba(0,0,0,0.5);
        }

    .z0-radio-value.selected .z0-radio-button:after {
        width: 50%;
        height: 50%;
    }

    .z0-radio-value.selected .z0-radio-button {
        border-color: #1975E8;
        background-color: #1975E8;
    }

    .z0-radio-group-wrapper[disabled] .z0-radio-group {
        pointer-events: none;
        opacity: 0.6;
    }

    .z0-radio-value input {
        display: none;
    }

    /* Checkbox group */

    .z0-checkbox-group-wrapper {
        display: flex;
        flex-direction: column;
    }

    .z0-checkbox-group {
        display: flex;
        flex-flow: row wrap;
        align-items: baseline;
    }

    .z0-checkbox-group-label {
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        margin-bottom: 3%;
    }

    .z0-checkbox-value {
        display: flex;
        flex-flow: row nowrap;
        align-items: center;
        padding: 3% 5%;
        margin-right: 5%;
        border-radius: 0.5em;
        cursor: pointer;
        transition: background-color 100ms ease-in-out;
        width: 100%;
    }

        .z0-checkbox-value label {
            font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
            margin-left: 10%;
            margin-bottom: 0;
            cursor: pointer;
        }

    .z0-checkbox-button {
        display: block;
        width: calc(0.9em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        height: calc(0.9em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        border: 0.1em solid gray;
        border-radius: 5px;
        background-color: whitesmoke;
        transition: background-color 100ms ease-in-out;
    }

    .z0-checkbox-value.selected .z0-checkbox-button {
        border-color: #1975E8;
        background: url('/Recursos/ZeroContact/icons/check-seleccionado.svg') no-repeat center;
        background-size: 80%;
        background-color: #1975E8;
    }

    .z0-checkbox-group-wrapper[disabled] .z0-checkbox-group {
        pointer-events: none;
        opacity: 0.6;
    }

    .z0-checkbox-value input {
        display: none;
    }

    /* Operations selector */

    .z0-operations-selector-header {
        display: flex;
        align-items: center;
    }

    .z0-operations-selector-list {
        display: flex;
        padding: 1% 2%;
        flex-flow: row wrap;
        align-items: center;
        border: 1px solid lightgray;
        max-height: calc(35 * var(--vh, 1vh));
        justify-content: space-between;
        overflow-y: scroll;
        transform: translateZ(0);
    }

    .z0-operations-empty {
        width: 100%;
        text-align: center;
    }

    .z0-operation {
        display: flex;
        justify-content: space-between;
        align-items: center;
        border: 1px solid gray;
        margin: 0.4%;
        width: 100%;
        cursor: pointer;
        transition: border 50ms ease-in-out, box-shadow 50ms ease-in-out;
    }

    .z0-operation-content {
        display: flex;
        align-items: center;
    }

        .z0-operation-content p {
            margin: 0;
            font-size: calc(0.5em + 0.4vw + calc(0.533 * var(--vh, 1vh)));
        }

    .z0-operation-checkbox {
        min-height: 1.5em;
        min-width: 1.5em;
        height: calc(calc(0.8 * var(--vh, 1vh)) + 0.6vw);
        width: calc(calc(0.8 * var(--vh, 1vh)) + 0.6vw);
        margin: calc(0.5em + calc(0.2 * var(--vh, 1vh)) + 0.233vw);
        border: 2px solid lightgray;
        border-radius: 5px;
        background-color: whitesmoke;
        transition: background-color 50ms ease-in-out;
    }

    .z0-operation.selected {
        border: 2px solid #1975E8;
        box-shadow: 0 1px 3px 1px lightgray;
    }

        .z0-operation.selected .z0-operation-checkbox {
            border-color: #1975E8;
            background: url('/Recursos/ZeroContact/icons/check-seleccionado.svg') no-repeat center;
            background-size: 80%;
            background-color: #1975E8;
        }

    .z0-operation-wheel-button {
        min-height: 1.2em;
        min-width: 1.2em;
        height: calc(2em + calc(0.8 * var(--vh, 1vh)) + 0.6vw);
        width: calc(2em + calc(0.8 * var(--vh, 1vh)) + 0.6vw);
        border-radius: 5px;
        background: url("/Recursos/ZeroContact/icons/vehiculo-conf-ruedas.svg") no-repeat center;
        background-size: 50%;
        border: none;
        margin-right: 1%;
        transition: background 250ms ease-in-out, transform 150ms ease;
        -webkit-appearance: none;
        -moz-appearance: none;
    }

        .z0-operation-wheel-button:hover,
        .z0-operation-wheel-button:focus {
            background-color: whitesmoke;
        }

        .z0-operation-wheel-button:focus {
            outline: none;
            box-shadow: inset 0px 0px 0px 4px rgba(0,0,0,0.1);
        }

    .z0-operations-selector-wrapper[disabled] {
        opacity: 0.6;
        pointer-events: none;
    }

    .z0-radio-value-wrapper[disabled] {
        opacity: 0.6;
        pointer-events: none;
    }


    /*= BUTTONS =*/

    /* Outline button */

    .z0-outline-action-button {
        display: inline-block;
        border: 2px solid #1975E8;
        text-decoration: none;
        color: #1975E8;
        background-color: transparent;
        font-size: 1em;
        font-weight: bold;
        padding: 1em;
        cursor: pointer;
        text-align: center;
        transition: background 70ms ease-in-out, color 70ms ease-in-out, border-color 70ms ease-in-out, transform 35ms ease;
        -webkit-appearance: none;
        -moz-appearance: none;
    }

        .z0-outline-action-button:hover,
        .z0-outline-action-button:focus {
            background-color: rgba(0, 0, 0, 0.05);
        }

        .z0-outline-action-button:focus {
            outline: 1px solid white;
            outline-offset: -4px;
        }

        .z0-outline-action-button:disabled {
            background-color: transparent;
            color: lightgray;
            border-color: lightgray;
        }

    .z0-outline-secondary {
        border: 1px solid gray;
    }

        .z0-outline-secondary:focus {
            outline: 1px solid black;
            outline-offset: -4px;
        }

    /* Solid button */

    .z0-solid-action-button {
        display: inline-block;
        border: none;
        text-decoration: none;
        background: #0069ed;
        color: #ffffff;
        font-size: 1.1em;
        font-weight: bold;
        padding: 1em;
        cursor: pointer;
        text-align: center;
        transition: background 250ms ease-in-out, transform 150ms ease;
        -webkit-appearance: none;
        -moz-appearance: none;
    }

        .z0-solid-action-button:hover,
        .z0-solid-action-button:focus {
            background: #0053ba;
        }

        .z0-solid-action-button:focus {
            outline: 1px solid #fff;
            outline-offset: -4px;
        }

        .z0-solid-action-button:disabled {
            background: lightgray;
        }

    /* Navigation solid button */

    .z0-solid-navigation-button {
        display: inline-block;
        border: none;
        border-radius: 20px 0 20px 0;
        padding: 0.5em;
        text-decoration: none;
        background: #0069ed;
        color: #ffffff;
        font-size: 1.1em;
        font-weight: bold;
        cursor: pointer;
        text-align: center;
        transition: background 250ms ease-in-out, transform 150ms ease, border-radius 70ms ease-in-out;
        -webkit-appearance: none;
        -moz-appearance: none;
    }

    .z0-button-label {
        margin: 0;
        font-size: calc(0.5em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
    }

    .z0-solid-navigation-button img {
        filter: brightness(0%) invert(1);
        width: calc(1em + 1vw + calc(1.33 * var(--vh, 1vh)));
        max-width: 100%;
    }

    .z0-solid-navigation-button:hover,
    .z0-solid-navigation-button:focus {
        background: #0053ba;
    }

    .z0-solid-navigation-button:focus {
        outline: none;
        box-shadow: inset 0px 0px 0px 4px rgba(0,0,0,0.2);
    }

    .z0-solid-navigation-button[disabled] {
        background-color: lightgray;
    }

    /* Navigation outline button */

    .z0-outline-navigation-button {
        display: inline-block;
        border: 2px solid lightgray;
        text-decoration: none;
        border-radius: 20px 0 20px 0;
        padding: 0.5em;
        text-decoration: none;
        background-color: transparent;
        color: #ffffff;
        font-size: 1.1em;
        font-weight: bold;
        cursor: pointer;
        text-align: center;
        transition: background 250ms ease-in-out, transform 150ms ease, opacity 70ms ease-in-out;
        -webkit-appearance: none;
        -moz-appearance: none;
    }

        .z0-outline-navigation-button p {
            margin: 0;
        }

        .z0-outline-navigation-button img {
            width: calc(1em + 1vw + calc(1.33 * var(--vh, 1vh)));
            max-width: 100%;
        }

        .z0-outline-navigation-button:hover,
        .z0-outline-navigation-button:focus {
            background: whitesmoke;
        }

        .z0-outline-navigation-button:focus {
            outline: none;
            box-shadow: inset 0px 0px 0px 4px rgba(0,0,0,0.1);
        }

    button:active:enabled {
        transform: scale(0.99);
    }

    button {
        font-family: Univia;
    }


    /*= STEPPERS =*/

    /* Horizontal stepper */

    .z0-horizontal-stepper {
        display: flex;
        justify-content: center;
    }

    .z0-horizontal-step {
        display: flex;
        flex-direction: column;
        align-items: center;
        flex: 1;
    }

        .z0-horizontal-step.active .z0-step-circle {
            background-color: #1975E8;
        }

        .z0-horizontal-step.active .z0-step-label {
            color: #222;
            font-weight: 500;
        }

    .z0-horizontal-step-node {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        margin: 2%;
    }

    .z0-step-circle {
        width: calc(1em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        height: calc(1em + 0.6vw + calc(0.8 * var(--vh, 1vh)));
        font-size: calc(0.5em + 0.3vw + calc(0.4 * var(--vh, 1vh)));
        background-color: lightgray;
        border-radius: 50%;
        color: white;
        font-weight: bold;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background-color 70ms ease-in-out;
    }

    .z0-horizontal-step-bar-left {
        margin-right: 5%;
        border: 1px solid gray;
        flex: 1;
    }

    .z0-horizontal-step-bar-right {
        margin-left: 5%;
        border: 1px solid gray;
        flex: 1;
    }

    .z0-horizontal-step:first-child .z0-horizontal-step-bar-left {
        visibility: hidden;
    }

    .z0-horizontal-step:last-child .z0-horizontal-step-bar-right {
        visibility: hidden;
    }

    .z0-step-label {
        text-align: center;
        padding: 5%;
        font-size: calc(0.5em + 0.3vw + calc(0.4 * var(--vh, 1vh)));
        color: gray;
        transition: color 70ms ease-in-out;
        font-weight: normal;
    }

    /* Circular stepper */

    .z0-circular-stepper {
        display: flex;
        align-items: center;
    }

    .z0-step-title {
        margin-left: 3vw;
        font-size: calc(1em + 0.5vw + calc(0.66 * var(--vh, 1vh)));
    }

    .z0-progress-ring text {
        stroke: black;
        opacity: 0.7;
        stroke-width: 0.1;
    }

    .z0-progress-ring-circle {
        stroke: #1975E8;
        stroke-linecap: round;
        stroke-width: 8;
        transition: 0.35s stroke-dashoffset;
        transform: rotate(-90deg);
        transform-origin: 50% 50%;
    }

    .z0-progress-ring-back-circle {
        stroke: whitesmoke;
        stroke-width: 8;
    }

    /* Responsive steppers */

    @media screen and (max-width: 425px) {
        .z0-horizontal-stepper {
            display: none;
        }
    }

    @media screen and (min-width: 425px) {
        .z0-circular-stepper {
            display: none;
        }
    }

    /*= SIMPLE FOOTER =*/

    .z0-zero-contact-footer {
        margin-top: calc(1em + calc(2 * var(--vh, 1vh)));
        display: flex;
        flex-direction: row;
        align-items: flex-end;
        font-family: Univia;
    }

        .z0-zero-contact-footer h3 {
            font-size: calc(0.3em + 0.5vw + calc(0.66 * var(--vh, 1vh)));
            padding: 0 0.5em;
            margin: 0 0.5em;
            border-left: 1px solid lightgray;
            font-family: Univia;
            font-weight: lighter;
        }

        .z0-zero-contact-footer img {
            width: calc(1em + 2vw + calc(2.66 * var(--vh, 1vh)));
        }


    /*= DECORATIONS =*/

    .z0-content-title {
        text-align: center;
        margin: 2.5rem;
        font-size: calc(1.2em + 1vw);
    }

    .z0-underline {
        display: flex;
        margin-left: 10px;
        border: 1px solid #768fff;
        background-color: #768fff;
        border-radius: 100px;
        width: 35%;
        height: calc(0.1em + 0.1vw + calc(0.133 * var(--vh, 1vh)));
    }

    .z0-screen-blocker {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: whitesmoke;
        border: 5px solid #0069ed;
        border-radius: 10px;
        color: #0069ed;
        z-index: 10000;
        font-size: calc(1em + 1vw);
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 1em;
    }

    /* Loading indicator */

    .z0-loading-indicator {
        display: inline-block;
        position: relative;
        width: 80px;
        height: 80px;
    }

        .z0-loading-indicator div {
            position: absolute;
            top: 33px;
            width: 13px;
            height: 13px;
            border-radius: 50%;
            background: #fff;
            animation-timing-function: cubic-bezier(0, 1, 1, 0);
        }

            .z0-loading-indicator div:nth-child(1) {
                left: 8px;
                animation: z0-loading-indicator1 0.6s infinite;
            }

            .z0-loading-indicator div:nth-child(2) {
                left: 8px;
                animation: z0-loading-indicator2 0.6s infinite;
            }

            .z0-loading-indicator div:nth-child(3) {
                left: 32px;
                animation: z0-loading-indicator2 0.6s infinite;
            }

            .z0-loading-indicator div:nth-child(4) {
                left: 56px;
                animation: z0-loading-indicator3 0.6s infinite;
            }

    @keyframes z0-loading-indicator1 {
        0% {
            transform: scale(0);
        }

        100% {
            transform: scale(1);
        }
    }

    @keyframes z0-loading-indicator3 {
        0% {
            transform: scale(1);
        }

        100% {
            transform: scale(0);
        }
    }

    @keyframes z0-loading-indicator2 {
        0% {
            transform: translate(0, 0);
        }

        100% {
            transform: translate(24px, 0);
        }
    }
