html, body {
    height: 100%;
}

body {
    overflow: auto;
}

.layout-wide {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/** header */
.layout-wide header {
    position: relative;
}

/** main */
.layout-wide main {
    flex: 1;
    padding: 0;
    width: 100%;
    max-width: none;
    background: #fff;
}

.layout-wide main .submenu {
    margin: -.5rem 0;
}

.submenu ul > li {
    margin-left: .5rem;
}

.layout-wide main .submenu a {
    font-weight: normal;
    border: none;
    background: #f3f3f3;
    border-radius: 4px;
    padding: .5rem;
    margin: .5rem 0;
}

.layout-wide main .submenu .sub-open,
.layout-wide main .submenu .sub-open:hover {
    background: none;
    border: none;
}

/** footer */
.layout-wide footer {
    position: relative;
    margin-top: 0;
}

/** Content elements */
.container {
    overflow: hidden;
    max-width: 1200px;
    margin: 0 auto;
    padding: 4rem 1rem;
}

.container-wide {
    overflow: hidden;
    max-width: 1900px;
    margin: 0 auto;
    padding: 4rem 1rem;
}

/** Content element: Flexible content - cards */
.cards {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: -1rem;
}

.cards > div {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    width: 300px;
    min-height: 400px;
    border-radius: 4px;
    background: #f3f3f3;
    margin: 1rem;
}

.cards > div.frame-type-textpic .ce-textpic, 
.cards > div.frame-type-textpic .ce-gallery {
    margin: 0;
    padding: 0;
}

.cards > div.frame-type-text, 
.cards > div.frame-type-textpic .ce-bodytext, 
.cards > div.frame-type-textpic .ce-textpic {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.cards > div.frame-type-textpic .ce-bodytext,
.cards > div.frame-type-textpic .ce-textpic {
    flex: 1;
}

.cards > div.frame-type-textpic .ce-gallery img {
    border-radius: 4px 4px 0 0;
}

.cards > div.frame-type-text a, 
.cards > div.frame-type-textpic a {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8em;
    color: #0b2b3e;
    border: 2px solid rgba(11,43,62,0.6);
    border-radius: 3px;
    padding: .25rem .5rem;
    height: 30px;
    margin: 1rem 0;
}

/** Content element: Flexible content - candidates */
.candidates {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: -1rem;
}

.candidates > div {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    width: 300px;
    min-height: 400px;
    margin: 1rem;
}

.candidates > div.frame-type-textpic .ce-textpic, 
.candidates > div.frame-type-textpic .ce-gallery {
    margin: 0;
    padding: 0;
}

.candidates > div.frame-type-text, 
.candidates > div.frame-type-textpic .ce-bodytext, 
.candidates > div.frame-type-textpic .ce-textpic {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.candidates > div.frame-type-textpic .ce-bodytext,
.candidates > div.frame-type-text {
    background: #f3f3f3;
    border-radius: 4px;
}

.candidates > div.frame-type-textpic .ce-bodytext,
.candidates > div.frame-type-textpic .ce-textpic {
    flex: 1;
    width: 100%;
    margin-top: 2rem;
}

.candidates > div.frame-type-textpic .ce-gallery img {
    border-radius: 50%;
    width: 200px;
    height: 200px;
}

.candidates > div.frame-type-text a, 
.candidates > div.frame-type-textpic a {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8em;
    color: #0b2b3e;
    border: 2px solid rgba(11,43,62,0.6);
    border-radius: 3px;
    padding: .25rem .5rem;
    height: 30px;
    margin: 1rem 0;
}