@charset "utf-8";

/* 

COLOURS

BLUE    - #287cb3
GREEN   - #359e35


*/

@import url('https://fonts.googleapis.com/css?family=Montserrat:700|Work+Sans:400,700&display=swap');

@font-face {
    font-family: 'FontAwesome';
    src: 
        url('../fonts/fontawesome/light/fa-light-300.woff2') format('woff2'),
        url('../fonts/fontawesome/light/fa-light-300.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

* {
    box-sizing: border-box;
    outline: none;
}

::selection,
::-moz-selection {
    background-color: #287cb3;
    color: #FFF;
}

::-moz-focus-inner {
    border: 0;
}

body {
    padding: 0;
    margin: 0;
    background-color: #FFF;
    color: #333;
    font-size: 62.5%;
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
}

main,
section,
div,
header,
footer,
article,
figure,
figcaption {
    display: block;
    overflow: hidden;
}

/* ACCESSIBILITY */

.hidden,
.screenreader,
.id-skipheader a:not(:focus):not(:active) {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    white-space: nowrap;
    clip-path: inset(100%);
    clip: rect(0 0 0 0);
    overflow: hidden;
}
.id-skipheader {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
}
.id-skipheader a {
    display: block;
    padding: 1.25em;
    color: #FFF;
    font-weight: 700;
    text-decoration: none;
    font-size: 1.6em;
    line-height: 1.25em;
    float: left;
    background-color: #333;
}
.id-skipheader a:hover,
.id-skipheader a:active,
.id-skipheader a:focus {
    color: #FFF;
    position: static;
}

/* TYPOGRAPHY */

hr {
    margin: 4em 0;
    background-color: #EEE;
    font-size: 1em;
    height: 0.5em;
    width: 100%;
    display: block;
    overflow: hidden;
    outline: none;
    border: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    line-height: 1.2em;
    margin: 0.5em 0;
}


h2[data-num]::before,
h3[data-num]::before,
h4[data-num]::before,
h5[data-num]::before,
h6[data-num]::before {
    content: attr(data-num);
    display: inline-block;
    margin-right: 0.25em;
    padding: 0.1em 0.25em;
    background-color: #EEE;
}

h2[data-num]::before {
    background-color: #FFF;
}

.dark-mode h2[data-num]::before {
    background-color: #333;
}

.dark-mode h3[data-num]::before,
.dark-mode h4[data-num]::before,
.dark-mode h5[data-num]::before,
.dark-mode h6[data-num]::before {
    background-color: #111;
}

p + h2,
p + h3,
p + h4,
p + h5,
p + h6,
p + ul,
p + ol {
    margin-top: 2em;
}

h2 { font-size: 3em; }
h3 { font-size: 2.4em }
h4 { font-size: 2em; }
h5, h6 { font-size: 1.6em; }

p {
    font-size: 1.6em;
    line-height: 1.5em;
    margin: 1.25em 0;
}

h2 + p,
h3 + p,
h4 + p,
h5 + p,
h6 + p,
h2 + ul,
h3 + ul,
h4 + ul,
h5 + ul,
h6 + ul,
h2 + ol,
h3 + ol,
h4 + ol,
h5 + ol,
h6 + ol,
h2 + dl,
h3 + dl,
h4 + dl,
h5 + dl,
h6 + dl {
    margin-top: 0;
}

a {
    color: #287cb3;
}

a:hover,
a:active,
a:focus {
    color: #FFF;
    background-color: #287cb3;
}

/* NUMBERED PARAGRAPHS */

p[data-num]::before {
    content: attr(data-num);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    display: inline-block;
    line-height: inherit;
    margin: 0;
    padding: 0;
    vertical-align: bottom;
    margin-right: 0.5em;
}

/* LISTS */

ul,
ol {
    font-size: 1em;
    margin: 4em 2em;
    padding: 0 2em;
}

ul ul,
ul ol,
ol ul,
ol ol {
    font-size: 0.625em;
    padding: 0;
    margin: 2em 0 0;
}

ul li {
    list-style-type: disc;
}

ul li,
ol li {
    font-size: 1.6em;
    line-height: 1.5em;
    margin: 1.25em 0;
}

ol li li,
ul li li {
    font-size: 1.6em;
}

li p {
    font-size: 1em;
}

ol:not([type]) {
    counter-reset: item;
    list-style: none;
    margin-left: 0;
    padding-left: 3em;
    position: relative;
}

ol ol {
    padding-left: 4em;
}

ol ol ol {
    padding-left: 5em;
}

ol ol ol ol {
    padding-left: 6em;
}

ol ol ol ol ol {
    padding-left: 7em;
}

ol ol ol ol ol ol {
    padding-left: 8em;
}

ol:not([type]) > li::before {
    content: counters(item, ".") " ";
    counter-increment: item;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    position: absolute;
    left: 0;
    font-size: inherit;
    line-height: inherit;
}

@media all and ( min-width: 640px ) {

    h1 { font-size: 4em; margin-top: 1.5em; }
    h2 { font-size: 3.6em; }
    h3 { font-size: 3em }
    h4 { font-size: 2.4em; }
    h5, h6 { font-size: 2em; }
    p { font-size: 1.8em; }
    ul li,
    ol li { font-size: 1.8em; }

    p + h2,
    p + h3,
    p + h4,
    p + h5,
    p + h6 {
        margin-top: 3.75rem;
    }

}

@media all and ( min-width: 720px ) {

    h1 { font-size: 4.8em; margin-top: 1.250em; }
    p { font-size: 2em; }
    ul li,
    ol li {
        font-size: 2em;
    }

}

/* SECTIONS */

section {
    position: relative;
    margin: 4em auto;
}

section > div {
    padding: 0 2em;
    margin: 4em auto;
    max-width: 640px;
}

section > div > *:first-child { margin-top: 0; }
section > div > *:last-child { margin-bottom: 0; }

/* FEATURE FIGURE */

section > figure {
    width: 100%;
    margin: 4em auto;
    padding: 0;
    max-width: 960px;
}

figure img {
    display: block;
    width: 100%;
    height: auto;
}

figure figcaption {
    font-size: 1.6em;
    line-height: 1.25em;
    padding: 1.25em;
}

figure figcaption p {
    font-size: 1em;
    margin: 0;
    display: inline;
}

section > div > figure:not(.councillor) {
    margin: 4em 0;
    background-color: #EEE;
}

/* COUNCILLOR FIGURE */

.councillor img {
    border-radius: 50%;
    width: 200px;
    height: auto;
}

.councillor {
    margin: 4em 0;
    padding: 2em;
    border-left: 5px solid #EEE;
    position: relative;
    text-align: left;
}

.councillor figcaption {
    padding: 0;
    margin: 1em;
    margin-bottom: 0;
    background: none;
}

.councillor figcaption strong {
    font-size: 1.25em;
}

.councillor figcaption span {
    display: block;
    margin-top: 0.625em;
}


/* TABLES */

section > table {
    padding: 0;
    max-width: 960px;
    margin-left: 2em;
    margin-right: 2em;
}

.table {
    padding: 0;
    margin: 4em 0;
}

section > .table {
    max-width: 960px;
    margin-left: 2em;
    margin-right: 2em;
}

@media all and ( min-width: 1000px ){
    section > .table {
        margin-left: auto;
        margin-right: auto;
    }
}

table {
    width: 100%;
    border-spacing: 0;
    border-collapse: collapse;
    margin: 4em auto;
}

.table table {
    margin: 0;
}

.table.overflowing {
    position: relative;
    overflow: hidden;
    border: 1px solid #CCC;
    padding: 0;
}

.table.overflowing .scrollpane {
    overflow-x: scroll;
    padding-top: 4em;
}

.table.overflowing .scrollpane::before {
    content: '\f337';
    font-family: 'FontAwesome';
    font-weight: 300;
    font-size: 1.6em;
    line-height: 1.25em;
    padding: 0.625em;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    background-color: #EEE;
    border-bottom: 1px solid #CCC;
}

.dark-mode .table.overflowing .scrollpane::before {
    background-color: #222;
}

.table.overflowing .scrollpane div {
    border: 2em solid transparent;
    box-sizing: content-box;
}

.table.overflowing::before,
.table.overflowing::after {
    content: '';
    display: block;
    overflow: hidden;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 1.5em;
    background-image: linear-gradient( 90deg, rgba(0,0,0, 0), rgba(0,0,0,0.1) );
}

.table.overflowing::before {
    left: 0;
    right: auto;
    background-image: linear-gradient( 90deg, rgba(0,0,0, 0.1), rgba(0,0,0,0) );
}

.dark-mode .table.overflowing::after { background-image: linear-gradient( 90deg, rgba(0,0,0, 0), rgba(0,0,0,0.8) ); }
.dark-mode .table.overflowing::before { background-image: linear-gradient( 90deg, rgba(0,0,0, 0.8), rgba(0,0,0,0) ); }

.dark-mode .table.overflowing::after {
    background-image: linear-gradient( 90deg, rgba(0,0,0, 0), rgba(0,0,0,1) );
}

.chart.activated .caption,
table caption {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 1.6em;
    line-height: 1.25em;
    text-align: left;
    padding: 1.25em 1.25em 1.25em 3.125em;
    border: 1px solid #CCC;
    border-bottom: 0;
    position: relative;
}

.chart.activated .caption span,
table caption span {
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
}

.chart.activated .caption::before,
table caption::before {
    content: '\f05a';
    font-family: 'FontAwesome';
    font-weight: 300;
    display: block;
    overflow: visible;
    position: absolute;
    top: 1.25em;
    left: 1.25em;
}

.chart.activated table caption {
    display: none;
}

table th {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
}

table *[data-unit]::after {
    content: " (" attr(data-unit) ")";
}

table th,
table td {
    border: 1px solid #CCC;
    text-align: left;
    font-size: 1.6em;
    line-height: 1.25em;
    padding: 0.625em;
    vertical-align: top;
}

table thead th {
    color: #FFF;
    border-color: #FFF;
    background-color: #333;
    border-top-color: #333;
    border-bottom-color: #333;
}

.dark-mode table thead th {
    background-color: #EEE;
    color: #000;
    border-color: #333;
    border-bottom-color: #EEE;
    border-top-color: #EEE;
}

.dark-mode table thead th:first-child {
    border-left-color: #EEE;
}

.dark-mode table thead th:last-child {
    border-right-color: #EEE;
}

table thead tr:not(:last-child) th {
    border-bottom-color: #FFF;
}


table thead tr:not(:last-child) th[rowspan] {
    border-bottom-color: #444;
}
.dark-mode table thead tr:not(:last-child) th[rowspan] {
    border-bottom-color: #EEE;
}

table thead tr:not(:first-child) th {
    border-top-color: #FFF;
}
.dark-mode table thead tr:not(:first-child) th {
    border-top-color: #FFF;
}

table thead tr > th:first-child {
    border-left-color: #444;
}

table thead th:last-child {
    border-right-color: #444;
}

.dark-mode table thead tr:not(:last-child) th {
    border-bottom-color: #333;
}
.dark-mode table thead tr:last-child th {
    border-bottom-color: #EEE;
}

.dark-mode table thead tr > th:first-child {
    border-left-color: #EEE;
}

/* tfoot */


table tfoot {
    display: table-row-group;
}

table tbody th {
    background-color: #EEE;
}

.dark-mode table tbody th {
    background-color: #222;
}

table tbody th:first-child:last-child {
    background-color: #DDD;
}
.dark-mode table tbody th:first-child:last-child {
    background-color: #111;
}

/* Multiple tfoots... */

table tfoot tr:first-child th,
table tfoot tr:first-child td {
    border-top: none;
}

table tfoot th,
table tfoot td {
    color: #FFF;
    border-color: #FFF;
    background-color: #444;
    border-bottom-color: #444;
    border-top-color: #444;
}
table tfoot th:first-child,
table tfoot td:first-child {
    border-left-color: #444;
}

table tfoot td:last-child,
table tfoot th:last-child {
    border-right-color: #444;
}

.dark-mode table tfoot th,
.dark-mode table tfoot td {
    color: #000;
    border-color: #CCC;
    background-color: #DDD;
    border-bottom-color: #333;
    border-top-color: #333;
}
.dark-mode table tfoot th:first-child,
.dark-mode table tfoot td:first-child {
    border-left-color: #CCC;
}
.dark-mode table tfoot td:last-child,
.dark-mode table tfoot th:last-child {
    border-right-color: #CCC;
}




/* .subtotal rows */

table tbody .subtotal th,
table tbody .subtotal td {
    color: #FFF;
    background-color: #666;
    border-bottom-color: #666;
    border-top-color: #666;
}
table tbody .subtotal th:first-child,
table tbody .subtotal td:first-child {
    border-left-color: #666;
}
table tbody .subtotal td:last-child,
table tbody .subtotal th:last-child {
    border-right-color: #666;
}

.dark-mode table tbody .subtotal th,
.dark-mode table tbody .subtotal td {
    color: #000;
    background-color: #999;
    border-bottom-color: #CCC;
    border-top-color: #CCC;
}
.dark-mode table tbody .subtotal th:first-child,
.dark-mode table tbody .subtotal td:first-child {
    border-left-color: #CCC;
}
.dark-mode table tbody .subtotal td:last-child,
.dark-mode table tbody .subtotal th:last-child {
    border-right-color: #CCC;
}



table td p,
table td li,
table td ol,
table td ul {
    font-size: 1em;
}

table td > *:first-child { margin-top: 0; }
table td > *:last-child { margin-bottom: 0; }

/* LIST TABLE */

@media all and ( max-width: 640px ){

    .zebra tbody tr:nth-child(even) th { 
        background-color: #CCC; 
    }
    
    .zebra tbody tr:nth-child(even) td { 
        background-color: #EEE;
    }
    
    .dark-mode .zebra tbody tr:nth-child(even) th { 
        background-color: #111; 
    }
    
    .dark-mode .zebra tbody tr:nth-child(even) td { 
        background-color: #222;
    }


    .table.list table,
    .table.list thead,
    .table.list tbody,
    .table.list tfoot,
    .table.list tr,
    .table.list td,
    .table.list th {
        display: block;
        overflow: hidden;
    }

    .table.list caption {
        display: block;
    }

    .table.list thead {
        display: none;
    }

    .table.list tbody td,
    .table.list tbody th {
        border-bottom: 0;
    }

    .table.list tbody tr:last-child td:last-child,
    .table.list tbody tr:last-child th:last-child {
        border-bottom: 1px solid #CCC;
    }

    .table.list tbody td::before,
    .table.list tbody th::before {
        content: attr(data-heading);
        font-family: 'Montserrat', sans-serif;
        font-weight: 700;
        font-size: 0.75em;
        margin-bottom: 0.417em;
        display: block;

    }

    .table.list tfoot td,
    .table.list tfoot th {
        border: none;
        border-top: 1px solid #FFF;
    }

    .table.list tfoot tr > *:first-child {
        border-top: none;
    }

    .table.list tbody .subtotal td,
    .table.list tbody .subtotal th {
        border-color: #CCC;
        border-left: 1px solid #666;
        border-right: 1px solid #666;
    }
    .dark-mode .table.list tbody .subtotal td,
    .dark-mode .table.list tbody .subtotal th {
        border-color: #CCC;
    }

    .table.list tbody .subtotal th::before,
    .table.list tbody .subtotal td::before {
        content: none;
    }

    .dark-mode .table.list tfoot th,
    .dark-mode .table.list tfoot td {
        border-color: #333;
    }

}

.dark-mode .table.list.fixed tfoot th,
.dark-mode .table.list.fixed tfoot td {
    border-top-color: #333;
}

.table.list.fixed table,
.table.list.fixed thead,
.table.list.fixed tbody,
.table.list.fixed tfoot,
.table.list.fixed tr,
.table.list.fixed td,
.table.list.fixed th {
    display: block;
    overflow: hidden;
}

.table.list.fixed caption {
    display: block;
}

.table.list.fixed thead {
    display: none;
}

.table.list.fixed tbody td,
.table.list.fixed tbody th {
    border-bottom: 0;
}

.table.list.fixed tbody tr:last-child td:last-child,
.table.list.fixed tbody tr:last-child th:last-child {
    border-bottom: 1px solid #CCC;
}

.table.list.fixed tbody td::before,
.table.list.fixed tbody th::before {
    content: attr(data-heading);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.75em;
    margin-bottom: 0.417em;
    display: block;
}

.table.list.fixed tfoot td,
.table.list.fixed tfoot th {
    border: none;
    border-top: 1px solid #FFF;
}

.table.list.fixed tfoot tr > *:first-child {
    border-top: none;
}

/* */

.table.list.fixed tbody .subtotal td,
.table.list.fixed tbody .subtotal th {
    border-color: #CCC;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}
.dark-mode .table.list.fixed tbody .subtotal td,
.dark-mode .table.list.fixed tbody .subtotal th {
    border-color: #CCC;
}

.table.list.fixed tbody .subtotal th::before,
.table.list.fixed tbody .subtotal td::before {
    content: none;
}


/* CHARTS */

.chart {
    margin: 4em auto;
}

.chart table {
    margin: 1em 0 0 0;
}

.chart .chartholder {
    border: 1px solid #CCC;
    border-top: none;
    padding: 1em 10em 2em;
    background-color: #FFF;
}

.chart.line .chartholder,
.chart.bar .chartholder {
    padding: 4em 2em;
}

.chart canvas {
    display: block;
    overflow: hidden;
    width: 100%;
    height: auto;
}

.chart .toggle {
    background-color: #EEE;
    border: 1px solid #CCC;
}

.toggle button {
    background-color: transparent;
    font-size: 1em;
    color: #333;
    border: none;
    outline: none;
    display: block;
    overflow: hidden;
    cursor: pointer;
    cursor: hand;
    position: relative;
    transition: background-color 0.25s ease-out;
}

.toggle button:hover,
.toggle button:active,
.toggle button:focus {
    background-color: rgba(0,0,0,0.1);
}

.toggle button::before {
    content: '';
    display: block;
    overflow: hidden;
    font-size: 2em;
    line-height: 2em;
    width: 2em;
    height: 2em;
    font-family: 'FontAwesome';
    font-weight: 300;
}

.toggle button.as-table::before { content: '\f0ce'; }

.chart.line .toggle button.as-chart::before { content: '\f201'; }
.chart.bar .toggle button.as-chart::before { content: '\f080'; }
.chart.pie .toggle button.as-chart::before { content: '\f200'; }
.chart.doughnut .toggle button.as-chart::before { content: '\f200'; }

@media only screen and (max-width: 600px) {
    .chart .chartholder {
        padding: 1em 2em 2em;
    }

    .chart.line .chartholder,
    .chart.bar .chartholder {
        padding: 0;
    }
}

/* side-by-side pie charts */
section > div.charts {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    max-width: none;
    padding: 0 2em;
    max-width: 1200px;
}

.charts .chart {
    width: 100%;
    margin: 2em 0 0 0;
}

.charts .chart:first-child {
    margin: 0;
}

@media all and ( min-width: 720px ){
    .charts .chart,
    .charts .chart:first-child {
        margin: 2em 0 0 2em;
        width: calc( (100% - 2em ) / 2 );
    }

    .charts .chart:nth-child(-n+2){
        margin-top: 0;
    }

    .charts .chart:nth-child(odd){
        margin-left: 0;
    }
}

@media all and ( min-width: 960px ){
    .charts .chart,
    .charts .chart:nth-child(-n+2),
    .charts .chart:nth-child(odd) {
        width: calc( (100% - 6em ) / 4 );
        margin: 0 0 0 2em;
    }

    .charts .chart:first-child {
        margin-left: 0;
    }

    .charts .chart .caption span {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        border: 0;
        padding: 0;
        white-space: nowrap;
        clip-path: inset(100%);
        clip: rect(0 0 0 0);
        overflow: hidden;
    }

    .charts .chart .chartholder {
        padding: 1em
    }
}

/* HEADER */

main > header {
    height: 200vh;
    width: 100%;
    background-color: #287cb3;
    position: relative;
}

@media all and ( min-height: 400px ) {
    main > header {
        height: 100vh;
    }
}

main > header.has-image {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url('../images/img-front-page.jpg');
}

main > header > div {
    position: absolute;
    top: 50%;
    left: 4em;
    right: 4em;
    transform: translate( 0,-50% );
}

main > header.has-image > div {
    top: auto;
    bottom: 4em;
    transform: none;
}

main > header h1 {
    padding: 0;
    margin: 0;
    margin-bottom: 0.5em;
    color: #FFF;
    font-size: 3em;
}

main > header.has-image h1 {
    background-color: #287cb3;
    box-shadow: 2px 2px 0 rgba(0,0,0,0.2);
    margin: 0 2px 0.25em 0;
    padding: 0.5em;
    float: left;
}

main > header.has-image.no-header-bg h1 {
    background-color: transparent;
    box-shadow: none;
    text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}

@media all and ( min-width: 960px ){

    main > header h1,
    main > header.has-image h1 {
        font-size: 4em;
    }

}

main > header p {
    display: block;
    overflow: hidden;
    color: #FFF;
    margin: 0;
    font-size: 1.6em;
    clear: both;
}

main > header p em {
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-style: normal;
}

main > header.has-image p {
    background-color: #359e35;
    box-shadow: 2px 2px 0 rgba(0,0,0,0.2);
    margin: 0 2px 2px 0;
    padding: 1.25em;
    float: left;
}

main > header.has-image.no-header-bg p {
    background-color: transparent;
    box-shadow: none;
    text-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}

main > header p a {
    color: #FFF;
}

main > header p a:hover,
main > header p a:active,
main > header p a:focus {
    color: #287cb3;
    background-color: #FFF;
}

main > header.has-image p a:hover,
main > header.has-image p a:active,
main > header.has-image p a:focus {
    color: #359e35;
    background-color: #FFF;
}

main > header .logo {
    position: absolute;
    top: 4em;
    left: 4em;
    transition: border-color 0.25s ease-out;
    border-bottom: 5px solid transparent;
    z-index: 1;
}

main > header .logo::before {
    content: '';
    display: block;
    overflow: hidden;
    width: 200px;
    padding-bottom: calc( 81 / 294 * 294px );
    background-image: url('../images/southtynesidecouncil/logo.svg');
    background-repeat: no-repeat;
    margin-bottom: 10px;
}

main > header .logo.colour::before {
    background-image: url('../images/southtynesidecouncil/logo-colour.svg');
}

@media all and ( min-width: 720px ) and ( min-height: 540px ){
    main > header .logo::before {
        width: 294px;
    }
}

main > header .logo:hover,
main > header .logo:active,
main > header .logo:focus {
    border-bottom: 5px solid #FFF;
    background-color: transparent;
}

main > header .logo.colour:hover,
main > header .logo.colour:active,
main > header .logo.colour:focus {
    border-bottom: 5px solid #359e35;
    background-color: transparent;
}

main > header.has-image .logo::before {
    width: 294px;
    padding-bottom: calc( 81 / 294 * 294px );
}

main > header + section {
    margin-top: 0;
}

/* HAS MONTAGE */

main > header.has-montage {
    display: flex;
    flex-direction: column;
}

main > header.has-montage > div {
    position: static;
    transform: none;
    padding: 4em;
    background-color: #287cb3;
}

main > header .montage,
main > header .montage li {
    display: block;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1em;
}

main > header .montage {
    width: 100%;
    height: auto;
    flex-grow: 1;
    position: relative;
}

main > header .montage li:not(:nth-child(-n+4)) {
    display: none;
}

main > header .montage {
    display: flex;
    flex-wrap: wrap;
}

main > header .montage li {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
}

main > header .montage img {
    display: block;
    object-fit: cover;
    object-position: center;
}

/* BEGIN BACKGROUNDS */

main > header .montage li {
    background-image: center;
}

main > header .montage li.left {
    background-position: left center;
}

main > header .montage li.right {
    background-position: left center;
}

main > header .montage li.bottom {
    background-position: center bottom;
}

main > header .montage li.bottom.left {
    background-position: left bottom;
}

main > header .montage li.bottom.right {
    background-position: right bottom;
}

main > header .montage li.top {
    background-position: center top;
}

main > header .montage li.top.left {
    background-position: left top;
}

main > header .montage li.top.right {
    background-position: right top;
}

main > header .montage img {
    object-position: 50% 50%;
}

main > header .montage li.left img {
    object-position: 0% 50%;
}

main > header .montage li.right img {
    object-position: 100% 50%;
}

main > header .montage li.top img {
    object-position: 50% 0%;
}

main > header .montage li.top.left img {
    object-position: 0% 0%;
}

main > header .montage li.top.right img {
    object-position: 100% 0%;
}

main > header .montage li.bottom img {
    object-position: 50% 100%;
}

main > header .montage li.bottom.left img {
    object-position: 0% 100%;
}

main > header .montage li.bottom.right img {
    object-position: 100% 100%;
}

/* END BACKGROUNDS */


main > header .montage li:nth-child(1) { 
    width: 100%;
    height: calc( (100% / 4) * 3 );
    top: 0;
    left: 0;
}

main > header .montage li:nth-child(2),
main > header .montage li:nth-child(3),
main > header .montage li:nth-child(4) {
    height: calc( 100% / 4 );
    width: calc( 100% / 3 );
    bottom: 0;
}

main > header .montage li:nth-child(3) {
    left: calc( 100% / 3 );
}

main > header .montage li:nth-child(4) {
    left: auto;
    right: 0;
}

main > header .montage li:nth-child(1) img {
    height: 100%;
}

main > header .montage li:nth-child(2) img,
main > header .montage li:nth-child(3) img,
main > header .montage li:nth-child(4) img {
    height: 100%;
}

@media all and ( min-width: 540px ){

    main > header .montage li:nth-child(1) img {
        width: 100%;
    }
    
    main > header .montage li:nth-child(2) img,
    main > header .montage li:nth-child(3) img,
    main > header .montage li:nth-child(4) img {
        width: 100%;
    }

}

@media all and ( min-width: 720px ){

    main > header .montage li:nth-child(1) {
        height: 100%;
        width: calc( (100% / 4) * 3 );
    }

    main > header .montage li:nth-child(2),
    main > header .montage li:nth-child(3),
    main > header .montage li:nth-child(4) {
        height: calc( 100% / 3 );
        width: calc( 100% / 4 );
        left: auto;
        right: 0;
    }

    main > header .montage li:nth-child(2) {
        bottom: auto;
        top: 0;
    }

    main > header .montage li:nth-child(3) {
        bottom: calc( 100% / 3 );
    }


}

/* SECTION HEADER */

section > header {
    background-color: #EEE;
}

section > header h2 {
    max-width: 640px;
    margin: 0 auto;
    padding: 2em 0.66666em;
}

@media all and ( min-width: 640px ){
    section > header h2 {
        padding: 2em 0.556em;
    }
}

@media all and ( min-width: 720px ){
    section > header h2 {
        padding: 2em 0.5em;
    }
}

/* FOOTER */

footer {
    height: 100vh;
    width: 100%;
    background-color: #CCC;
}

footer > div {
    max-width: 640px;
    padding: 4em 2em;
    margin: 0 auto;
}

footer p {
    margin: 0;
    font-size: 1.6em;
}

.different-format {
    font-size: 1.6em;
}

footer ul,
footer li {
    display: block;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
}

footer ul {
    margin: 2em 0;
}

footer li {
    font-size: 1.6em;
    position: relative;
    padding-right: 3.75em;
}

footer li:not(:first-child){
    margin-top: 0.625em;
}

footer .copyright {
    margin-bottom: 2.5em;
}

footer .copyright span {
    display: block;
}

footer .copyright::after {
    content: '';
    display: block;
    width: 294px;
    padding-bottom: calc( 81 / 294 * 294px );
    background-image: url('../images/southtynesidecouncil/logo-grey.svg');
    margin: 0 auto;
}

@media all and ( min-width: 640px ){
    footer .copyright::after {
        margin: 0;
    }
}

footer a {
    color: #333;
    white-space: nowrap;
}

footer a:hover,
footer a:active,
footer a:focus {
    color: #CCC;
    background-color: #333;
}

footer .web::before,
footer .phone::before,
footer .email::before {
    display: inline-block;
    margin-right: 0.625em;
    font-family: 'FontAwesome';
    font-weight: 300;
}

footer .web::before {
    content: '\f109';
}

footer .phone::before {
    content: '\f095';
}

footer .email::before {
    content: '\f0e0';
}


/* ASIDE */

aside {
    margin: 4em 0;
    padding: 2em;
    background-color: #EEE;
}

aside > *:first-child {
    margin-top: 0;
}

aside > *:last-child {
    margin-bottom: 0;
}

/* SIDE BY SIDE */

.side-by-side {
   margin: 4em auto;
   padding: 0;
   max-width: 960px;
}

.side-by-side p,
.side-by-side ul li,
.side-by-side ol li {
    font-size: 1.6em;
}

.side-by-side > div {
    background-color: #EEE;
    padding: 2em;
    margin: 2em 0 0 0;
}

.side-by-side > div:last-child {
    flex: 1;
}

.side-by-side > div:first-child {
    margin-top: 0;
}

.side-by-side > div > *:first-child { margin-top: 0; }
.side-by-side > div > *:last-child { margin-bottom: 0; }

@media all and ( min-width: 720px ){

    .side-by-side {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .side-by-side > div {
        width: calc( (100% - 2em) / 2 );
        margin: 2em 0 0 2em;
    }

    .side-by-side > div:nth-child(-n+2) {
        margin-top: 0;
    }

    .side-by-side > div:nth-child(odd) {
        margin-left: 0;
    }

}


/* DEFINITION LISTS */

dl,
dl dd,
dl dt {
    display: block;
    overflow: hidden;
    padding: 0;
    margin: 0;
}

dl {
    margin: 4em 0;
    font-size: 1em;
}

dl dd,
dl dt {
    font-size: 1.6em;
    line-height: 1.25em;
    padding: 0.625em;
    border: 1px solid #CCC;
    border-top: none;
}

dl dd:first-child,
dl dt:first-child {
    border-top: 1px solid #CCC;
}

dl:not(.side) dt {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    background-color: #EEE;
}

.dark-mode dl:not(.side) dt {
    background-color: #111;
}

/* SIDE DL */

dl.side dd + dd {
    color: #C00;
    background-color: pink;
}

dl.side dd + dd::before {
    content: 'Incorrect HTML structure, please remove. '
}

dl.side dt,
dl.side.reverse dd {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    background-color: #EEE;
}

dl.side.reverse dt {
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
    background-color: transparent;
}

.dark-mode dl.side dt,
.dark-mode dl.side.reverse dd {
    background-color: #111;
}

.dark-mode dl.side.reverse dt {
    background-color: transparent;
}


@media all and ( min-width: 720px ){

    dl.side {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }

    dl.side.reverse {
        flex-direction: row-reverse;
    }
    
    .id-content-bottom.container > dl.side.expand {
        margin-right: 0;
    }

    dl.side:not(.reverse) dd,
    dl.side.reverse dt {
        border-left: none;
    }

    dl.side dd:first-of-type,
    dl.side dt:first-of-type {
        border-top: 1px solid #CCC;
    }

    dl.side dd,
    dl.side dt {
        width: 50%;
        border-top: none;
        border-bottom: 1px solid #CCC;
    }

    dl.side.expand dt,
    dl.side.expand.reverse dd { width: 25% }
    dl.side.expand dd,
    dl.side.expand.reverse dt { width: 75% }

}

dl dd ul {
    margin: 0;
}

dl dd ul,
dl dd ul li,
dl dd p {
    font-size: 1em;
}

/* NAVIGATION */

.menu-open {
    overflow: hidden;
}

.menu-open main a,
.menu-open main area,
.menu-open main textarea,
.menu-open main button,
.menu-open main input,
.menu-open main object,
.menu-open main select,
.menu-open main *[tabindex] {
    display: none;
}

.id-navigation {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 4em;
    display: none;
}

.menu-open .id-navigation {
    display: block;
    overflow: auto;
    padding: 4em;
    background-color: #359e35;
}

.id-navigation ol,
.id-navigation li {
    display: block;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1em;
    background: none;
}

.id-navigation ol li::before {
    content: none;
}

.id-navigation ol ol {
    border-left: 5px solid #FFF;
    clear: both;
}

.id-navigation ol ol ol {
    border-left: none;
}

.id-navigation ol li {
    padding: 0 0 0 1em;
}

.id-navigation ol ol li.feature::before {
    content: '\f06e';
    display: inline-block;
    margin-right: 0.625em;
    font-family: 'FontAwesome';
    font-weight: 300;
    color: #FFF;
}

.id-navigation > ol {
    margin-bottom: 4em;
}

.id-navigation > ol > li {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 2em;
    line-height: 1.2em;
}

.id-navigation > ol > li + li {
    margin-top: 2em;
}

.id-navigation > ol > li > a {
    display: block;
    margin-bottom: 1em;
    float: left;
}

.id-navigation ol li li {
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
    font-size: 0.8em;
    line-height: 1.5em;
    position: relative;
    padding: 0 0 0 1.25em;
    margin: 1.25em 0;
}

.id-navigation ol li li li {
    font-size: 1em;
}

.id-navigation a {
    color: #FFF;
    text-decoration: none;
}

.id-navigation a:hover,
.id-navigation a:active,
.id-navigation a:focus {
    color: #359e35;
    background-color: #FFF;
}

.id-navigation a[data-num]::before {
    content: attr(data-num);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    display: inline-block;
    vertical-align: bottom;
    margin-right: 0.5em;
}


/* BLOCKQUOTE */

blockquote {
    margin: 4em 0;
    padding: 2em;
    border-left: 5px solid #EEE;
    position: relative;
}

blockquote::before {
    content: '\f10d\00A0\f10e';
    display: block;
    font-family: 'FontAwesome';
    font-weight: 300;
    text-align: left;
    font-size: 4em;
    color: #EEE;
}

blockquote p {
    font-size: 2em;
    text-align: left;
}

blockquote cite {
    font-size: 1.6em;
    line-height: 1.5em;
    text-align: left;
    display: block;
}


/* BUTTONS */

.js-init main {
    margin-left: 4em;
}

.id-buttons {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4em;
    border-right: 1px solid #EEE;
}

.id-buttons button {
    font-size: 1em;
    width: 4em;
    position: relative;
    height: 4em;
    display: block;
    overflow: hidden;
    cursor: pointer;
    cursor: hand;
    border: none;
    outline: none;
    background: none;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid #EEE;
    transition: all 0.25s ease-out;
}

.id-buttons button::before {
    font-family: 'FontAwesome';
    font-weight: 300;
    display: block;
    overflow: hidden;
    font-size: 2em;
    text-align: center;
    height: 2em;
    width: 2em;
    line-height: 2em;
    color: #666;
    pointer-events: none;
}

.id-btn-home::before { content: '\f015'; }

.id-btn-menu::before { content: '\f0c9'; }
.id-btn-menu.open::before { content: '\f00d'; }

.id-btn-dark::before { content: '\f186'; }
.id-btn-dark.dark::before { content: '\f185'; }

.id-buttons button:hover,
.id-buttons button:active,
.id-buttons button:focus {
    background-color: rgba( 0,0,0, 0.1 );
}

/* PROGRESS */

.id-progress {
    height: calc( 100vh - 12em );
    width: 4em;
    padding: 1em 1em;
}

.id-progress ol,
.id-progress li {
    display: block;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1em;
}

.id-progress ol {
    width: 4px;
    height: calc( 100vh - 14em );
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    background-color: #EEE;
    list-style: none;
}

.id-progress li {
    width: 4px;
    height: 100%;
    list-style: none;
    text-indent: 4px;
}

.id-progress li::before {
    content: none;
}

.dark-mode .id-progress li {
    background-color: #333;
}

.id-progress li.selected {
    background-color: #287cb3;
    transition: background-color 0.25s ease-out;
}

.dark-mode .id-progress li.selected {
    background-color: #F4A425;
}

/* DARK STYLES */

.dark-mode ::selection,
.dark-mode ::-moz-selection {
    background-color: #F4A425;
    color: #333;
}

.dark-mode {
    background-color: #333;
    color: #FFF;
}

.dark-mode a {
    color: #F4A425;
}

.dark-mode a:hover,
.dark-mode a:active,
.dark-mode a:focus {
    color: #333;
    background-color: #F4A425;
}

.dark-mode main > header p a {
    color: #FFF;
}

.dark-mode main > header p a:hover,
.dark-mode main > header p a:active,
.dark-mode main > header p a:focus {
    color: #287cb3;
    background-color: #FFF;
}

.dark-mode main > header .logo {
    background-color: transparent;
}

.dark-mode .id-navigation a {
    color: #FFF;
    text-decoration: none;
}

.dark-mode .id-navigation a:hover,
.dark-mode .id-navigation a:active,
.dark-mode .id-navigation a:focus {
    color: #359e35;
    background-color: #FFF;
}

.dark-mode footer a {
    color: #FFF;
}

.dark-mode footer a:hover,
.dark-mode footer a:active,
.dark-mode footer a:focus {
    color: #222;
    background-color: #FFF;
}

/* SECTION HEADER */

.dark-mode section > header {
    background-color: #222;
}

/* FOOTER */

.dark-mode footer {
    background-color: #222;
}

.dark-mode figure:not(.councillor) figcaption {
    background-color: #222;
}

/* ASIDE */

.dark-mode aside {
    background-color: #222;
}

/* SIDE BY SIDE */

.dark-mode .side-by-side > div {
    background-color: #222;
}

/* DEFINITION LISTS */

.dark-mode dl dt,
.dark-mode dl.side dd {
    background-color: #222;
}

.dark-mode dl.side dt {
    background-color: transparent;
}

.dark-mode .id-buttons button::before {
    color: #EEE;
}

.dark-mode .id-buttons button:hover,
.dark-mode .id-buttons button:active,
.dark-mode .id-buttons button:focus {
    background-color: rgba( 255, 255, 255, 0.2 );
}

.dark-mode .id-buttons {
    background-color: #222;
}


/* FOOTNOTE */

.footnote {
    padding: 1em;
    border: 1px solid #CCC;
    background-color: #EEE;
}

table + .footnote {
    border-top: none;
}

.dark-mode .footnote {
    background-color: #111;
}

.footnote p {
    font-size: 1.6em;
}

.footnote > *:first-child {
    margin-top: 0;
}

.footnote > *:last-child:not(.btn) {
    margin-bottom: 0;
}

/* FLOW */

.flow {
    margin: 4em 0;
}

.flow ol,
.flow li {
    display: block;
    overflow: hidden;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 1em;
}

.flow ol li::before {
    content: attr(data-title);
    position: static;
    font-size: 1.6em;
    display: block;
    line-height: 1.25em;
    margin-bottom: 0.625em;
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
}

.flow li span {
    font-size: 2em;
    font-family: 'Montserrat', sans-serif;
    line-height: 1.2em;
}

.flow li .holder {
    margin-top: 2em;
}

.flow li {
    padding: 2em;
    background-color: #EEE;
}

.dark-mode .flow li {
    background-color: #111;
}

.flow li.outcome { background-color: #287cb3; }
.flow li.outcome.positive { background-color: #2d862d; }
.flow li.outcome.negative { background-color: #CC0000; }

.dark-mode .flow li.outcome { background-color: #143e59; }
.dark-mode .flow li.outcome.positive { background-color: #164316; }
.dark-mode .flow li.outcome.negative { background-color: #660000; }

.flow li.outcome {
    color: #FFF;
}

.flow li.outcome .btn {
    background-color: transparent;
    border-color: #FFF;
}

.flow li.outcome .btn:hover,
.flow li.outcome .btn:focus {
    background-color: #FFF;
    color: #287cb3;
}
.flow li.outcome.positive .btn:hover,
.flow li.outcome.positive .btn:focus {
    color: #359e35;
}
.flow li.outcome.negative .btn:hover,
.flow li.outcome.negative .btn:focus {
    color: #CC0000;
}

.dark-mode .flow li.outcome .btn:hover,
.dark-mode .flow li.outcome .btn:focus {
    color: #143e59;
}
.dark-mode .flow li.outcome.positive .btn:hover,
.dark-mode .flow li.outcome.positive .btn:focus {
    color: #164316;
}
.dark-mode .flow li.outcome.negative .btn:hover,
.dark-mode .flow li.outcome.negative .btn:focus {
    color: #660000;
}


.flow .hide {
    display: none;
}

button::-moz-focus-inner {
    border: 0;
}

.flow .holder .btn:not(:first-child) {
    margin-left: 0.625em;
}

.table.flowchart.activated table.hide {
    display: none;
}

.table-toggle {
    background-color: #DDD;
    padding: 2em;
}

.table-toggle button {
    font-family: 'Work Sans', sans-serif;
    font-weight: 400;
    background: none;
    text-decoration: underline;
    border: none;
    outline: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    cursor: hand;
    color: #143e59;
}

.table-toggle button:hover,
.table-toggle button:active,
.table-toggle button:focus {
    background-color: #143e59;
    color: #DDD;
}

.dark-mode .table-toggle {
    background-color: #222;
}

.dark-mode .table-toggle button {
    color: #F4A425;
}
.dark-mode .table-toggle button:hover,
.dark-mode .table-toggle button:active,
.dark-mode .table-toggle button:focus {
    background-color: #F4A425;
    color: #222;
}

/* BTN */
  
.btn {
    display: inline-block;
    overflow: hidden;
    border: 0.063em solid rgba(0,0,0,0);
    font-size: 1.6em;
    line-height: 1.25em;
    padding: 0.5em 1.25em;
    margin: 0 0.125em 0.125em 0;
    background-color:  #287cb3;
    color: #FFF;
    transition: color 0.25s ease-out, background-color 0.25s ease-out, border-color 0.25s ease-out;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    border-radius: 0.313em;
    box-shadow: 0.125em 0.125em 0 rgba(0,0,0,0.1);
    text-decoration: none;
    cursor: pointer;
    cursor: hand;
}

.btn:hover,
.btn:focus {
    color: #FFF;
    background-color: #143e59;
    border-color: #143e59;
    box-shadow: 0.125em 0.125em 0 rgba(0,0,0,0.1);
}

.btn:active {
    box-shadow: none;
    transform: translate(0.125em, 0.125em);
}

.dark-mode .btn {
    color: #FFF;
    background-color: #143e59;
    border-color: #143e59;
}

.dark-mode .btn:hover,
.dark-mode .btn:focus {
    color: #FFF;
    background-color: #287cb3;
    border-color: #287cb3;
}




