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

html {
    line-height: 1.4;
    overflow-y: scroll;
    scroll-behavior: smooth;
}

body {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
}

a {
    text-decoration: none;
    word-wrap: break-word;
}

h1 {
    font-size: 1.4em;
}

h2 {
    font-size: 1.2em;
}

abbr[title] {
    text-decoration: none;
    font-variant: normal;
    font-style: normal;
    border: none;
    cursor: help;
}

address {
    font-style: normal;
}

img {
    border: 0;
    display: block;
    height: auto;
    max-width: 100%;
}

q,
blockquote {
    quotes: '>>' '<<';
    font-style: italic;
}

q::before,
blockquote::before {
    content: open-quote;
}

q::after,
blockquote::after {
    content: close-quote;
}

ul,
ol {
    list-style: outside;
    margin-left: .95em;
}

small {
    font-size: .8em;
}

strong {
    font-size: 1.2em;
    font-weight: normal;
}

b {
    font-weight: 600;
}

em {
    font-weight: 600;
    font-style: normal;
}

dt {
    font-weight: 600;
}

h2,
ul,
ol,
p,
dl,
dd,
figure,
blockquote {
    margin-bottom: .8em;
}

figcaption {
    font-size: .8em;
}

hr {
    border: 0;
}

span.tab {
    display: inline-block;
    min-width: 4em;
}

a.disabled-link {
    pointer-events: none;
}

.screen-reader-text,
.visually-hidden {
    overflow: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    border: none;
    height: 1px;
    margin: -1px;
    padding: 0;
    width: 1px;
}

.hidden {
    display: none;
}

.switch-button {
    border: none;
    background: none;
    cursor: pointer;
    display: block;
}