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

.ezv-app {
    color: var(--ezv-color-text);
    font-family: var(--ezv-font-family-base);
    font-size: var(--ezv-font-size-md);
    line-height: var(--ezv-line-height-base);
}

.ezv-app h1,
.ezv-app h2,
.ezv-app h3,
.ezv-app h4,
.ezv-app h5,
.ezv-app h6 {
    color: var(--ezv-color-heading);
    font-family: var(--ezv-font-family-heading);
    letter-spacing: 0;
}

.ezv-app a {
    color: var(--ezv-color-primary);
}

.ezv-app a:hover {
    color: var(--ezv-color-primary-hover);
}

.ezv-app img,
.ezv-app svg,
.ezv-app video {
    max-width: 100%;
}

.ezv-app :focus-visible {
    outline: 3px solid var(--ezv-color-focus);
    outline-offset: 2px;
}

.ezv-app .ui-widget,
.ezv-app .ui-widget input,
.ezv-app .ui-widget select,
.ezv-app .ui-widget textarea,
.ezv-app .ui-widget button {
    font-family: var(--ezv-font-family-base);
}

.ezv-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ezv-text-muted {
    color: var(--ezv-color-text-muted);
}

.ezv-text-strong {
    color: var(--ezv-color-heading);
    font-weight: var(--ezv-font-weight-semibold);
}

.ezv-text-success {
    color: var(--ezv-color-success);
}

.ezv-text-warning {
    color: var(--ezv-color-warning);
}

.ezv-text-danger {
    color: var(--ezv-color-danger);
}

.ezv-spacer-sm {
    height: var(--ezv-space-3);
}

.ezv-spacer-md {
    height: var(--ezv-space-5);
}

.ezv-spacer-lg {
    height: var(--ezv-space-8);
}
