@media (min-width: 768px) {
    .mobile-only {
        display: none!important;
    }
}

@media (max-width: 768px) {
    .desktop-only {
        display: none!important;
    }
}

sup.required {
    color: red;
    font-size: 1em;
    vertical-align: .1em;
}

a.link {
    text-decoration: underline;
}

a.link:hover {
    text-decoration: none;
}

a.link-reverse {
    text-decoration: none;
}

a.link-reverse:hover {
    text-decoration: underline;
}

.mt-0 {
    margin-top: 0!important;
}

.no-scroll {
    overflow: hidden!important;
}

.hidden {
    display: none!important;
}

.text-truncate-multiline {
    --line-height: 1.4;
    --max-lines: 3;

    display: block;
    line-height: var(--line-height);

    max-height: calc(var(--max-lines) * var(--line-height) * 1em);
    overflow: hidden;

    display: -webkit-box;
    display: -moz-box;

    -webkit-line-clamp: var(--max-lines);
    line-clamp: var(--max-lines);

    -moz-box-orient: vertical;
    -webkit-box-orient: vertical;
}

.text-truncate-multiline-3 {
    --max-lines: 3;
}

.text-truncate-multiline-4 {
    --max-lines: 4;
}