html {
    margin: 0;
    padding: 0;

    font-family: sans-serif;
    line-height: 1.15;

    min-height: 100vh;
}

body {
    margin: 0;
    padding: 0;

    min-height: 100vh;
}

#root {
    display: flex;
    flex-direction: column;
    position: relative;

    color: var(--col-foreground);
    background-color: var(--col-background);

    min-height: 100vh;
}

#segment_content {
    padding-top: 64px;
    display: flex;
    justify-content: center;
    line-height: 1.4;
    flex-direction: column;
    align-items: stretch;

    width: 960px;
    max-width: 100%;
    margin: 0 auto;
}

@media only screen and (max-width: 60rem) { /* < 960px */
    #segment_content { width: 100%; }
}

@media only screen and (max-width: 45rem) {  /* 720px */
    #segment_content { padding-top: 0; }
}

#segment_content.segment_content_err { width: calc(100% - 32px); }

.responsive-row-3 {
    display: flex;
    flex-direction: row;
    justify-content: stretch;
    /*! width: 33%; */
}

.responsive-row-3 > * {
    flex-grow: 1;
    width: 33%;
}

@media only screen and (max-width: 60rem) { /* < 960px */
    .responsive-row-3 { flex-direction: column; }
    .responsive-row-3 > *  { width: unset; }
}

.responsive-row-3-flow {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

@media only screen and (max-width: 60rem) { /* < 960px */
    .responsive-row-3-flow { grid-template-columns: 1fr 1fr; }
}

@media only screen and (max-width: 30rem) { /* < 480px */
    .responsive-row-3-flow { grid-template-columns: 1fr; }
}

.responsive-buttonrow-3-flow {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

@media only screen and (max-width: 60rem) { /* < 960px */
    .responsive-buttonrow-3-flow { grid-template-columns: 1fr; }
}

#segment_pad {
    flex-grow: 1;
}

.header_subtext {
    text-align: center;
    width: 75%;
    margin: 0 auto;
    opacity: 0.8;
}

h1 {
    text-align: center;
    margin-bottom: 0;
}

#root.fullheight-content                  { }
#root.fullheight-content #segment_content { flex-grow: 1; min-height: 0; }
#root.fullwidth-content #segment_content  { width: 100%; }
#root.fullheight-content #segment_pad     { flex-grow: 0; }