body {
    background-color: #f4efe1;
}

#viewport {
    float: left;
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
}

#bannerbg {
    display: block;
    position: absolute;
    top: 20%;
    left: 0;
    height: 6%;
    width: 100%;
    background-color: #DACCE6;
}

#headerbg {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 20%;
    width: 100%;
    background-color: #e7ddbf;
}

#footerbg {
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    height: 19%;
    width: 100%;
    background-color: #e7ddbf;
}

#header {
    float: left;
    width: 100%;
    height: 20%;
    box-sizing: border-box;
}

#banner {
    float: left;
    width: 100%;
    height: 6%;
}

#bannert {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    font-family: "Montserrat", serif;
    font-size: 1.3vh; /* fix font size */
    font-weight: bold;
    height: 50%;
    color: black;
}

#bannert:hover {
    color: #444444;
}

#bannerb {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    font-family: "Montserrat", serif;
    font-size: 1.3vh; /* fix font size */
    height: 50%;
    color: black;
}

#bannerb:hover {
    color: #444444;
}

#page {
    float: left;
    width: 100%;
    height: 55%;
    padding: 0;
    margin: 0;
    overflow: auto;
    overflow-x: hidden;
}

#footer {
    float: left;
    width: 100%;
    height: 15%;
    box-sizing: border-box;
}

#footerl {
    float: left;
    width: 20%;
    height: 100%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerm {
    float: left;
    width: 50%;
    height: 100%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footermt {
    width: 100%;
    height: 40%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footermb {
    width: 100%;
    height: 60%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerr {
    float: left;
    width: 30%;
    height: 100%;
    padding: 0;
    margin: 0;
}

#footerrt {
    width: 100%;
    height: 40%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerrb {
    width: 100%;
    height: 60%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerrbl {
    float: left;
    height: 100%;
    width: 33.33%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerrbm {
    float: left;
    height: 100%;
    width: 33.33%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#footerrbr {
    float: left;
    height: 100%;
    width: 33.33%;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

#disclaimer {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    font-family: "Montserrat", serif;
    font-size: 1.2vh; /* fix font size */
    width: 100%;
    height: 4%;
    box-sizing: border-box;
    font-style: italic;
}

#logo {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    top: 10%;
    height: 80%;
    cursor: pointer;
}

#seal {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    height: 70%;
    top: 15%;
}

#ft1 {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100%;
    font-family: "Montserrat", serif;
    font-size: 1.5vh; /* fix font size */
    font-weight: bold;
}

#ft2 {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100%;
    font-family: "Montserrat", serif;
    font-size: 1.2vh; /* fix font size */
    font-style: italic;
}

#ft3 {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    flex-wrap: wrap;
    height: 100%;
    font-family: "Montserrat", serif;
    font-size: 1.2vh; /* fix font size */
    font-weight: bold;
    font-style: italic;
}

#iglink {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    top: 25%;
    height: 50%;
    cursor: pointer;
}

#ltlink {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    top: 25%;
    height: 50%;
    cursor: pointer;
}

#fblink {
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    top: 25%;
    height: 50%;
    cursor: pointer;
}

#main-title {
    float: left;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0;
    margin: 0;
    width: 100%;
    font-family: "Montserrat", serif;
    box-sizing: border-box;
    font-size: 3vh;
    font-weight: bold;
    height: 9.5%;
}

#separator {
    float: left;
    display: block;
    height: 0.5%;
    width: 100%;
    padding: 0;
    margin: 0;
    background-color: black;
    border-radius: 2vh;
}

#states-container {
    float: left;
    padding: 0;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    height: 90%;
    overflow: auto;
}

.stateitem {
    float: left;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0;
    margin: 0;
    width: calc(100% / 4);
    height: 10%;
    font-family: "Montserrat", serif;
    font-size: 1.5vh; /* fix font size */
    font-weight: bold;
    cursor: pointer;
    border-radius: 1.5vh;
}

.stateitem:focus {
    background-color: #000000;
}

.stateitem:hover {
    background-color: #e7ddbf;
}

/* width */
::-webkit-scrollbar {
    width: 0.8vh;
    border-radius: 1vh;
}

/* Track */
::-webkit-scrollbar-track {
    background: inherit;
}

/* Handle */
::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 1vh;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #555;
}

.state-all {
    float: left;
    text-align: center;
    padding: 0;
    margin: 0;
    width: 100%;
    font-family: "Montserrat", serif;
    box-sizing: border-box;
}

#information-for {
    padding-top: 4vh;
    font-size: 1.6vh;
    font-weight: bold;
    font-style: italic;
}

.state-title {
    font-size: 3vh;
    font-weight: bold;
}

.reg-deadlines {
    padding-top: 6vh;
    font-size: 1.8vh;
    font-weight: bold;
}

.dl-in-person {
    font-size: 1.6vh;
    padding-top: 2vh;
    padding-left: 10%;
    padding-right: 10%;
}

.dl-by-mail {
    font-size: 1.6vh;
    padding-top: 1vh;
    padding-left: 10%;
    padding-right: 10%;
}

.dl-online {
    font-size: 1.6vh;
    padding-top: 1vh;
    padding-left: 10%;
    padding-right: 10%;
}

.dl-abs-bal {
    font-size: 1.6vh;
    padding-top: 2vh;
    padding-left: 10%;
    padding-right: 10%;
}

.info-link {
    font-size: 1.4vh;
    padding-top: 1vh;
    padding-left: 10%;
    padding-right: 10%;
}

.rel-elec-day-date {
    text-decoration: dotted;
    text-decoration-line: underline;
    text-decoration-color: #666666;
    cursor: pointer;
}

.img-link-wrapper {
    float: left;
    width: 100%;
    height: 100%;
}

#fill-abs {
    padding-bottom: 5vh;
}

.distance-dialog {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-family: "Montserrat", serif;
    position: absolute;
    background-color: #e7ddbf;
    border-radius: 5vh;
    padding-top: 1vh;
    padding-bottom: 1vh;
    color: black;
    font-weight: bold;
    font-size: 1.4vh;
    padding-left: 1.5vh;
    padding-right: 1.5vh;
    -webkit-user-select: none;
    -ms-user-select: none;
    user-select: none;
    filter: drop-shadow(0 0 0.5vh black);
}

.ballot-note {
    font-size: 1.4vh;
    padding-top: 3vh;
    padding-left: 10%;
    padding-right: 10%;
}