@charset "UTF-8";
/* Global semantic colours */
@media only screen and (min-width: 576px) {
  .width-full {
    width: 100% !important;
  }
  .width-three-quarters {
    width: 75% !important;
  }
  .width-two-thirds {
    width: 66.66% !important;
  }
  .width-half {
    width: 50% !important;
  }
  .width-one-third {
    width: 33.33% !important;
  }
  .width-one-quarter {
    width: 25% !important;
  }
}
.remove-all-margins {
  margin: 0 !important;
}

.remove-bottom-margin {
  margin-bottom: 0 !important;
}

.remove-top-margin {
  margin-top: 0 !important;
}

.remove-left-margin {
  margin-left: 0 !important;
}

.remove-right-margin {
  margin-right: 0 !important;
}

.half-bottom-margin {
  margin-bottom: 0.5rem !important;
}

.half-top-margin {
  margin-top: 0.5rem !important;
}

.margin-bottom {
  margin-bottom: 1rem !important;
}
.margin-bottom--double {
  margin-bottom: 2rem !important;
}

.margin-top {
  margin-top: 1rem !important;
}
.margin-top--double {
  margin-top: 2rem !important;
}

.remove-all-padding {
  padding: 0 !important;
}

.remove-bottom-padding {
  padding-bottom: 0 !important;
}

.remove-top-padding {
  padding-top: 0 !important;
}

.remove-left-padding {
  padding-left: 0 !important;
}

.remove-right-padding {
  padding-right: 0 !important;
}

.half-bottom-padding {
  padding-bottom: 0.5rem !important;
}

.half-top-padding {
  padding-top: 0.5rem !important;
}

.padding-bottom {
  padding-bottom: 1rem !important;
}
.padding-bottom--double {
  padding-bottom: 2rem !important;
}

.padding-top {
  padding-top: 1rem !important;
}
.padding-top--double {
  padding-top: 2rem !important;
}

/* Global semantic colours */
.grid, .grid-xs {
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  grid-auto-rows: minmax(min-content, max-content);
  gap: 1rem;
}
.grid.full, .full.grid-xs {
  grid-template-columns: 1fr;
}
.grid.half, .half.grid-xs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.thirds, .thirds.grid-xs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid.two-thirds, .two-thirds.grid-xs {
  grid-template-columns: 2fr 1fr;
}
.grid.one-third, .one-third.grid-xs {
  grid-template-columns: 1fr 2fr;
}
.grid.quarters, .quarters.grid-xs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid.left-right, .left-right.grid-xs {
  grid-template-columns: 1fr 2fr 1fr;
}
.grid.align-centre, .align-centre.grid-xs {
  align-items: center;
}
.grid.justify-centre, .justify-centre.grid-xs {
  justify-content: center;
}
@media only screen and (min-width: 576px) {
  .grid, .grid-xs {
    display: grid;
  }
}
@media screen and (min-width: 1400px) {
  .grid.xl-full, .xl-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.xl-half, .xl-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.xl-thirds, .xl-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.xl-two-thirds, .xl-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.xl-one-third, .xl-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.xl-quarters, .xl-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.xl-left-right, .xl-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 1400px) and (min-width: 576px) {
  .grid.lg-full, .lg-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.lg-half, .lg-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.lg-thirds, .lg-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.lg-two-thirds, .lg-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.lg-one-third, .lg-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.lg-quarters, .lg-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.lg-left-right, .lg-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 992px) and (min-width: 576px) {
  .grid.md-full, .md-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.md-half, .md-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.md-thirds, .md-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.md-two-thirds, .md-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.md-one-third, .md-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.md-quarters, .md-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.md-left-right, .md-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}

.grid-xs {
  display: grid;
}

html,
body {
  margin: 0;
  padding: 0;
}

section {
  display: block;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 576px) {
  section.with-padding {
    padding: 1rem;
  }
}

aside {
  display: block;
  margin-bottom: 1rem;
}

hr {
  margin: 0 0 1rem 0;
  border: none;
  border-bottom: solid 1px #b1b4b6;
}

.container {
  margin: 1rem;
}

.example {
  padding: 1rem;
  border: dashed 1px #b1b4b6;
}
.example.dark-mode {
  border: none;
  background-color: #5d6a72;
}

.hidden,
.hide {
  display: none;
}

.visible,
.show {
  display: inline-block;
}

.no-scroll {
  overflow: hidden;
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

/* Global semantic colours */
a.btn,
.btn {
  display: inline-block;
  width: 100%;
  max-height: 42.5px;
  margin: 0 1rem 0.5rem 0;
  padding: 0.5rem 1rem;
  background-color: #0255c0;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  text-align: center;
  letter-spacing: 0.025rem;
  line-height: 1.5rem;
  box-sizing: border-box;
  box-shadow: 0 5px 20px 0 rgba(35, 31, 32, 0.2);
  cursor: pointer;
}
@media only screen and (min-width: 576px) {
  a.btn,
  .btn {
    display: inline-flex;
    align-items: center;
    width: auto;
    margin-bottom: 0;
  }
}
a.btn.navigation::after,
.btn.navigation::after {
  margin-left: 0.5rem;
  font-family: "Font Awesome 5 Free";
  font-size: 1.5rem;
  content: "\f101";
}
a.btn.primary,
.btn.primary {
  background: #cf102d;
  font-weight: 700;
}
a.btn.primary:hover,
.btn.primary:hover {
  background: #ad1015;
}
a.btn.primary:focus,
.btn.primary:focus {
  outline: 2px solid #0255c0;
  background: #cf102d;
}
a.btn.primary:disabled:hover,
a.btn.primary .disabled:hover,
.btn.primary:disabled:hover,
.btn.primary .disabled:hover {
  background: #cf102d;
}
a.btn.secondary,
.btn.secondary {
  background-color: #eee;
  color: #231f20 !important;
  font-weight: 400;
  box-shadow: none;
}
a.btn.secondary:hover,
.btn.secondary:hover {
  background-color: #ddd;
  color: #231f20 !important;
}
a.btn.secondary:focus,
.btn.secondary:focus {
  outline: 2px solid #0255c0;
  background-color: #eee;
}
a.btn.secondary:disabled:hover,
a.btn.secondary .disabled:hover,
.btn.secondary:disabled:hover,
.btn.secondary .disabled:hover {
  background-color: #eee;
}
a.btn.outline,
.btn.outline {
  background-color: transparent;
  padding: 0.375rem 1rem;
  border: solid 2px #cf102d;
  color: #cf102d;
  box-shadow: none;
}
a.btn.outline:visited,
.btn.outline:visited {
  color: #cf102d;
}
a.btn.outline:hover,
.btn.outline:hover {
  background-color: #cf102d;
  color: #fff;
}
a.btn.outline:focus,
.btn.outline:focus {
  color: #cf102d;
  background-color: transparent;
}
a.btn.outline:disabled:hover,
a.btn.outline .disabled:hover,
.btn.outline:disabled:hover,
.btn.outline .disabled:hover {
  background-color: transparent;
  color: #cf102d;
}
a.btn.outline-white,
.btn.outline-white {
  background-color: transparent;
  border: solid 2px #fff;
  padding: 0.375rem 1rem;
  box-shadow: none;
}
a.btn.outline-white:hover,
.btn.outline-white:hover {
  background-color: #fff;
  color: #cf102d;
}
a.btn.outline-white:focus,
.btn.outline-white:focus {
  background-color: transparent;
}
a.btn.outline-white:disabled:hover,
a.btn.outline-white .disabled:hover,
.btn.outline-white:disabled:hover,
.btn.outline-white .disabled:hover {
  background-color: transparent;
  color: #fff;
}
a.btn.supplementary,
.btn.supplementary {
  margin: 0 1rem;
  padding: 0;
  background-color: transparent;
  color: #5d6a72;
  font-weight: normal;
  text-decoration: underline;
  box-shadow: none;
}
a.btn.supplementary:hover,
.btn.supplementary:hover {
  background-color: transparent;
  color: #231f20;
  text-decoration: none;
}
a.btn.supplementary:visited,
.btn.supplementary:visited {
  color: #5d6a72;
}
a.btn.supplementary:focus,
.btn.supplementary:focus {
  outline: none;
  padding: 3px auto;
  background-color: rgba(2, 85, 192, 0.25);
  box-sizing: border-box;
}
a.btn.supplementary:disabled,
a.btn.supplementary .disabled,
.btn.supplementary:disabled,
.btn.supplementary .disabled {
  text-decoration: none;
}
a.btn.supplementary:disabled:hover,
a.btn.supplementary .disabled:hover,
.btn.supplementary:disabled:hover,
.btn.supplementary .disabled:hover {
  text-decoration: none;
  background-color: transparent;
  color: #5d6a72;
}
a.btn:hover,
.btn:hover {
  background-color: #0142af;
  color: #fff;
  box-shadow: none;
  transition: all 0.3s linear;
}
a.btn:active,
.btn:active {
  background-color: #0142af;
  color: #fff;
  box-shadow: none;
}
a.btn:visited,
.btn:visited {
  color: #fff;
}
a.btn:focus,
.btn:focus {
  outline: 2px solid #0255c0;
  background-color: #0255c0;
}
a.btn:disabled, a.btn.disabled,
.btn:disabled,
.btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
}
a.btn:disabled:hover, a.btn.disabled:hover,
.btn:disabled:hover,
.btn.disabled:hover {
  background-color: #0255c0;
  opacity: 0.5;
  cursor: not-allowed;
}

/* Global semantic colours */
/* Global semantic colours */
.form-checkbox-item {
  display: block;
  margin-bottom: 1rem;
  white-space: nowrap;
}
@media only screen and (min-width: 576px) {
  .form-checkbox-item.inline {
    display: inline-block;
  }
}
.form-checkbox-item .form-checkbox-input {
  position: absolute;
  opacity: 0;
}
.form-checkbox-item .form-checkbox-label {
  display: inline-block;
  margin-right: 1rem;
  font-size: 1rem;
  cursor: pointer;
}
.form-checkbox-item .form-checkbox-label .form-checkbox {
  display: inline-block;
}
.form-checkbox-item .form-checkbox-label .form-checkbox > i {
  position: relative;
  padding-right: 0.5rem;
  font-size: 1.6rem;
  vertical-align: middle;
  transition: all 0.2s linear;
}
.form-checkbox-item .form-checkbox-input:checked + .form-checkbox-label .form-checkbox > i {
  color: #0255c0;
}
.form-checkbox-item .form-checkbox-input:checked + .form-checkbox-label .form-checkbox > i::before {
  content: "\f14a";
}
.form-checkbox-item .form-checkbox-input:focus + .form-checkbox-label .form-checkbox {
  outline: none;
  padding: 3px auto;
  background-color: rgba(2, 85, 192, 0.25);
  box-sizing: border-box;
  padding: auto;
  border-radius: 4px;
}
.form-checkbox-item.disabled {
  opacity: 0.3;
}
.form-checkbox-item.disabled .form-checkbox-label {
  cursor: not-allowed;
}

/* Global semantic colours */
.form-fieldset {
  margin: 0 0 1rem 0;
  padding: 0;
  border: none;
}
@media only screen and (min-width: 576px) {
  .form-fieldset {
    max-width: 66.6%;
  }
}
.form-fieldset .form-legend {
  font-size: 1.15rem;
}
.form-fieldset.form-error {
  padding-left: 1rem;
  border-left: solid 5px #cf102d;
}
.form-fieldset.form-error .form-legend {
  position: relative;
  top: 1rem;
  margin-bottom: 1.5rem;
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

.form {
  display: block;
  margin-bottom: 2rem;
}
.form.form-error {
  padding-left: 1rem;
  border-left: solid 5px #cf102d;
}

.form-group {
  margin-bottom: 1rem;
}

.form-error-message {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: #cf102d;
}

.form-error-summary {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: #cf102d;
}

.form-validation {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: #cf102d;
}

/* Global semantic colours */
.form-hint {
  display: block;
  margin-bottom: 1rem;
  font-size: 1rem;
  color: #5d6a72;
}

img {
  display: block;
  width: 100%;
}

/* Global semantic colours */
.form-label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 1rem;
  color: #5d6a72;
}
.form-label.small {
  font-size: 0.75rem;
}
@media only screen and (min-width: 576px) {
  .form-label.small {
    font-size: 0.9rem;
  }
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

.form-legend {
  margin-bottom: 1rem;
  font-size: 1.15rem;
  font-weight: 600;
}
@media only screen and (min-width: 576px) {
  .form-legend {
    font-size: 1.4rem;
  }
}

/* Global semantic colours */
/* Global semantic colours */
a,
.link {
  display: inline-block;
  color: #0255c0;
  text-decoration: underline;
  cursor: pointer;
}
a.text,
.link.text {
  color: #231f20;
}
a.text:hover,
.link.text:hover {
  color: #231f20;
}
a.secondary,
.link.secondary {
  color: #5d6a72;
}
a.secondary:hover,
.link.secondary:hover {
  color: #5d6a72;
}
a:hover,
.link:hover {
  color: #0142af;
  text-decoration: none;
}
a:focus,
.link:focus {
  outline: none;
  padding: 3px auto;
  background-color: rgba(2, 85, 192, 0.25);
  box-sizing: border-box;
}

/* Global semantic colours */
/* Global semantic colours */
.form-radio-item {
  display: block;
  margin-bottom: 1rem;
  white-space: nowrap;
}
@media only screen and (min-width: 576px) {
  .form-radio-item.inline {
    display: inline-block;
  }
}
.form-radio-item .form-radio-input {
  position: absolute;
  opacity: 0;
}
.form-radio-item .form-radio-label {
  display: inline-block;
  margin-right: 1rem;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .form-radio-item .form-radio-label {
    font-size: 1.1rem;
  }
}
.form-radio-item .form-radio-label {
  cursor: pointer;
}
.form-radio-item .form-radio-label .form-radio {
  display: inline-block;
  margin-right: 0.25rem;
}
.form-radio-item .form-radio-label .form-radio > i {
  position: relative;
  padding: 2px;
  font-size: 1.6rem;
  vertical-align: middle;
  transition: all 0.2s linear;
}
.form-radio-item .form-radio-input:checked + .form-radio-label {
  cursor: default;
}
.form-radio-item .form-radio-input:checked + .form-radio-label .form-radio > i {
  color: #0255c0;
}
.form-radio-item .form-radio-input:checked + .form-radio-label .form-radio > i::before {
  content: "\f192";
}
.form-radio-item .form-radio-input:focus + .form-radio-label .form-radio {
  outline: none;
  padding: 3px auto;
  background-color: rgba(2, 85, 192, 0.25);
  box-sizing: border-box;
  padding: auto;
  border-radius: 20px;
}
.form-radio-item.disabled {
  opacity: 0.3;
}
.form-radio-item.disabled .form-radio-label {
  cursor: not-allowed;
}

/* Global semantic colours */
.form-select {
  width: 100%;
  height: 2.5rem;
  padding: 0.5rem;
  background-color: #fff;
  border: solid 2px #b1b4b6;
  font-size: 1.1rem;
  line-height: 1.5rem;
  box-sizing: border-box;
}
.form-select:focus {
  outline: 2px solid #0255c0;
}
.form-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Global semantic colours */
/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

.table {
  width: 100%;
  margin-bottom: 1rem;
  font-size: 1rem;
  line-height: 1.5rem;
  color: #231f20;
  border-spacing: 0;
  border-collapse: collapse;
}
.table__head {
  border-bottom: solid 2px #b1b4b6;
}
.table__caption {
  margin-bottom: 1rem;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
}
@media only screen and (min-width: 576px) {
  .table__caption {
    font-size: 1.1rem;
  }
}
.table__header {
  font-weight: 600;
}
.table__header, .table__cell {
  padding: 0.5rem 1rem 0.5rem 0;
  border-bottom: solid 1px #b1b4b6;
  vertical-align: top;
  text-align: left;
}
.table__header:last-child, .table__cell:last-child {
  padding-right: 0;
}
.table__header.numeric, .table__cell.numeric {
  text-align: right;
}

thead .table__header {
  font-weight: 700;
}

/* Global semantic colours */
.form-textarea {
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.25rem;
  border: solid 2px #b1b4b6;
  color: #231f20;
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 1.1rem;
  line-height: 1.5rem;
  box-sizing: border-box;
  border-radius: 0;
  box-shadow: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.form-textarea.has-error {
  border: solid 2px #cf102d;
}
.form-textarea:focus {
  outline: 2px solid #0255c0;
}
.form-textarea:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Global semantic colours */
/* Global semantic colours */
.form-input {
  width: 100%;
  height: 2.5rem;
  margin-bottom: 1rem;
  padding: 0.25rem;
  border: solid 2px #b1b4b6;
  color: #231f20;
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 1.1rem;
  line-height: 1.5rem;
  box-sizing: border-box;
  border-radius: 0;
  box-shadow: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.form-input.minimal {
  border: none;
  border-bottom: solid 1px #b1b4b6;
}
.form-input.minimal.has-error, .form-input.minimal.ng-touched.ng-invalid {
  border: none;
  border-bottom: solid 2px #cf102d;
}
.form-input.minimal::-moz-placeholder {
  color: #b1b4b6;
}
.form-input.minimal::placeholder {
  color: #b1b4b6;
}
.form-input.has-error, .form-input.ng-touched.ng-invalid {
  border: solid 2px #cf102d;
}
.form-input::-moz-placeholder {
  color: #ccc;
}
.form-input::placeholder {
  color: #ccc;
}
.form-input:focus {
  outline: 2px solid #0255c0;
}
.form-input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Global semantic colours */
.tile {
  position: relative;
  margin-bottom: 1rem;
  padding: 1rem;
  background-color: #fff;
  border-radius: 5px;
  box-shadow: 1px 6px 12px 2px rgba(93, 106, 114, 0.2);
}
.tile.min-padding {
  padding: 0.5rem;
}
.tile.max-padding {
  padding: 2rem;
}
.tile.no-padding {
  padding: 0;
}
@media only screen and (min-width: 992px) {
  .tile.full-height {
    min-height: 79vh;
  }
}
.tile.fullscreen {
  border-radius: 0;
}
@media only screen and (min-width: 768px) {
  .tile.fullscreen {
    border-radius: 5px;
  }
}
.tile.fit-content {
  height: -moz-fit-content;
  height: fit-content;
}

.loading {
  position: relative;
  width: 80%;
  height: 5px;
  margin: 2rem auto;
  background-color: #eee;
  text-align: center;
}
.loading .bar {
  content: "";
  position: absolute;
  width: 0;
  height: 100%;
  left: 50%;
  text-align: center;
}
.loading .bar:nth-child(1) {
  background-color: #cf102d;
  animation: loading 2s linear infinite;
}
@keyframes loading {
  from {
    left: 50%;
    width: 0;
    z-index: 100;
  }
  33.3% {
    left: 0;
    width: 100%;
    z-index: 10;
  }
  to {
    left: 0;
    width: 100%;
  }
}
.loading p {
  padding-top: 0.5rem;
}

#watermark {
  position: fixed;
  bottom: 1rem;
  right: 2rem;
  opacity: 0.9;
  z-index: -1;
  color: #ad1015;
  opacity: 0.4;
}
#watermark h3 {
  font-size: 10rem;
}
/* Global semantic colours */
/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

/* Global semantic colours */
@media only screen and (min-width: 576px) {
  .width-full {
    width: 100% !important;
  }
  .width-three-quarters {
    width: 75% !important;
  }
  .width-two-thirds {
    width: 66.66% !important;
  }
  .width-half {
    width: 50% !important;
  }
  .width-one-third {
    width: 33.33% !important;
  }
  .width-one-quarter {
    width: 25% !important;
  }
}
.remove-all-margins {
  margin: 0 !important;
}

.remove-bottom-margin {
  margin-bottom: 0 !important;
}

.remove-top-margin {
  margin-top: 0 !important;
}

.remove-left-margin {
  margin-left: 0 !important;
}

.remove-right-margin {
  margin-right: 0 !important;
}

.half-bottom-margin {
  margin-bottom: 0.5rem !important;
}

.half-top-margin {
  margin-top: 0.5rem !important;
}

.margin-bottom {
  margin-bottom: 1rem !important;
}
.margin-bottom--double {
  margin-bottom: 2rem !important;
}

.margin-top {
  margin-top: 1rem !important;
}
.margin-top--double {
  margin-top: 2rem !important;
}

.remove-all-padding {
  padding: 0 !important;
}

.remove-bottom-padding {
  padding-bottom: 0 !important;
}

.remove-top-padding {
  padding-top: 0 !important;
}

.remove-left-padding {
  padding-left: 0 !important;
}

.remove-right-padding {
  padding-right: 0 !important;
}

.half-bottom-padding {
  padding-bottom: 0.5rem !important;
}

.half-top-padding {
  padding-top: 0.5rem !important;
}

.padding-bottom {
  padding-bottom: 1rem !important;
}
.padding-bottom--double {
  padding-bottom: 2rem !important;
}

.padding-top {
  padding-top: 1rem !important;
}
.padding-top--double {
  padding-top: 2rem !important;
}

/* Global semantic colours */
.grid, .grid-xs {
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  grid-auto-rows: minmax(min-content, max-content);
  gap: 1rem;
}
.grid.full, .full.grid-xs {
  grid-template-columns: 1fr;
}
.grid.half, .half.grid-xs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.thirds, .thirds.grid-xs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid.two-thirds, .two-thirds.grid-xs {
  grid-template-columns: 2fr 1fr;
}
.grid.one-third, .one-third.grid-xs {
  grid-template-columns: 1fr 2fr;
}
.grid.quarters, .quarters.grid-xs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid.left-right, .left-right.grid-xs {
  grid-template-columns: 1fr 2fr 1fr;
}
.grid.align-centre, .align-centre.grid-xs {
  align-items: center;
}
.grid.justify-centre, .justify-centre.grid-xs {
  justify-content: center;
}
@media only screen and (min-width: 576px) {
  .grid, .grid-xs {
    display: grid;
  }
}
@media screen and (min-width: 1400px) {
  .grid.xl-full, .xl-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.xl-half, .xl-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.xl-thirds, .xl-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.xl-two-thirds, .xl-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.xl-one-third, .xl-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.xl-quarters, .xl-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.xl-left-right, .xl-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 1400px) and (min-width: 576px) {
  .grid.lg-full, .lg-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.lg-half, .lg-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.lg-thirds, .lg-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.lg-two-thirds, .lg-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.lg-one-third, .lg-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.lg-quarters, .lg-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.lg-left-right, .lg-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 992px) and (min-width: 576px) {
  .grid.md-full, .md-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.md-half, .md-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.md-thirds, .md-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.md-two-thirds, .md-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.md-one-third, .md-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.md-quarters, .md-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.md-left-right, .md-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}

.grid-xs {
  display: grid;
}

html,
body {
  margin: 0;
  padding: 0;
}

section {
  display: block;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 576px) {
  section.with-padding {
    padding: 1rem;
  }
}

aside {
  display: block;
  margin-bottom: 1rem;
}

hr {
  margin: 0 0 1rem 0;
  border: none;
  border-bottom: solid 1px #b1b4b6;
}

.container {
  margin: 1rem;
}

.example {
  padding: 1rem;
  border: dashed 1px #b1b4b6;
}
.example.dark-mode {
  border: none;
  background-color: #5d6a72;
}

.hidden,
.hide {
  display: none;
}

.visible,
.show {
  display: inline-block;
}

.no-scroll {
  overflow: hidden;
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

.header {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: 1px 1px 3px 1px rgba(93, 106, 114, 0.2);
  height: 60px;
  align-items: center;
  align-content: center;
  padding: 0 1rem;
  box-sizing: border-box;
  background-color: #fff;
}
.header.sticky {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}
.header .app-heading {
  display: flex;
  align-items: center;
}
.header .app-heading .app-logo {
  display: inline-block;
  width: auto;
  height: 40px;
  margin-right: 1rem;
}
.header .user {
  justify-self: end;
}
.header .user__name {
  display: none;
}
@media only screen and (min-width: 576px) {
  .header .user__name {
    display: inline-block;
    color: #231f20;
  }
}
.header .user .logout {
  margin-left: 1rem;
  color: #231f20;
  text-decoration: none;
  border-bottom: solid 2px transparent;
}
.header .user .logout:hover {
  color: rgba(35, 31, 32, 0.9);
  border-bottom-color: #cf102d;
  transition: all 0.3s linear;
}

.primary-menu {
  position: relative;
}
.primary-menu .nav-toggle {
  display: inline-block;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  color: #231f20;
}
@media only screen and (min-width: 768px) {
  .primary-menu .nav-toggle {
    display: none;
  }
}
.primary-menu .nav-toggle:hover, .primary-menu .nav-toggle.active {
  color: #cf102d;
}
.primary-menu .nav-toggle:focus {
  outline: none;
}
.primary-menu .nav-toggle .icon {
  font-size: 1.5rem;
}
.primary-menu__list {
  position: fixed;
  top: 60px;
  left: 0;
  background-color: #fff;
  width: 100%;
  margin: 0;
  padding: 1rem;
  list-style-type: none;
  border-bottom: 5px solid #cf102d;
}
@media only screen and (min-width: 768px) {
  .primary-menu__list {
    display: flex;
    position: relative;
    top: auto;
    padding: 0;
    white-space: nowrap;
    border-bottom: none;
  }
}
.primary-menu__list__item {
  margin: 0 1rem 1rem 0;
}
@media only screen and (min-width: 768px) {
  .primary-menu__list__item {
    margin: 0 1rem 0 0;
  }
}
.primary-menu__list__item:last-child {
  margin-right: 0;
}
.primary-menu__list__link {
  color: #231f20;
  text-decoration: none;
  border-bottom: solid 2px transparent;
}
.primary-menu__list__link:hover {
  color: rgba(35, 31, 32, 0.9);
  border-bottom-color: #cf102d;
  transition: all 0.3s linear;
}
.primary-menu__list__link.active {
  color: #231f20;
  font-weight: 600;
  text-decoration: none;
  border-bottom-color: #cf102d;
}
.primary-menu__list__link.active:focus {
  outline: none;
}
.primary-menu__list__link:focus {
  outline: 2px solid #0255c0;
}
@media only screen and (max-width: 768px) {
  .primary-menu__list.show {
    display: inline-block;
  }
  .primary-menu__list.hide {
    display: none;
  }
}

@media only screen and (min-width: 576px) {
  .width-full {
    width: 100% !important;
  }
  .width-three-quarters {
    width: 75% !important;
  }
  .width-two-thirds {
    width: 66.66% !important;
  }
  .width-half {
    width: 50% !important;
  }
  .width-one-third {
    width: 33.33% !important;
  }
  .width-one-quarter {
    width: 25% !important;
  }
}
.remove-all-margins {
  margin: 0 !important;
}

.remove-bottom-margin {
  margin-bottom: 0 !important;
}

.remove-top-margin {
  margin-top: 0 !important;
}

.remove-left-margin {
  margin-left: 0 !important;
}

.remove-right-margin {
  margin-right: 0 !important;
}

.half-bottom-margin {
  margin-bottom: 0.5rem !important;
}

.half-top-margin {
  margin-top: 0.5rem !important;
}

.margin-bottom {
  margin-bottom: 1rem !important;
}
.margin-bottom--double {
  margin-bottom: 2rem !important;
}

.margin-top {
  margin-top: 1rem !important;
}
.margin-top--double {
  margin-top: 2rem !important;
}

.remove-all-padding {
  padding: 0 !important;
}

.remove-bottom-padding {
  padding-bottom: 0 !important;
}

.remove-top-padding {
  padding-top: 0 !important;
}

.remove-left-padding {
  padding-left: 0 !important;
}

.remove-right-padding {
  padding-right: 0 !important;
}

.half-bottom-padding {
  padding-bottom: 0.5rem !important;
}

.half-top-padding {
  padding-top: 0.5rem !important;
}

.padding-bottom {
  padding-bottom: 1rem !important;
}
.padding-bottom--double {
  padding-bottom: 2rem !important;
}

.padding-top {
  padding-top: 1rem !important;
}
.padding-top--double {
  padding-top: 2rem !important;
}

/* Global semantic colours */
.grid, .grid-xs {
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  grid-auto-rows: minmax(min-content, max-content);
  gap: 1rem;
}
.grid.full, .full.grid-xs {
  grid-template-columns: 1fr;
}
.grid.half, .half.grid-xs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.thirds, .thirds.grid-xs {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid.two-thirds, .two-thirds.grid-xs {
  grid-template-columns: 2fr 1fr;
}
.grid.one-third, .one-third.grid-xs {
  grid-template-columns: 1fr 2fr;
}
.grid.quarters, .quarters.grid-xs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid.left-right, .left-right.grid-xs {
  grid-template-columns: 1fr 2fr 1fr;
}
.grid.align-centre, .align-centre.grid-xs {
  align-items: center;
}
.grid.justify-centre, .justify-centre.grid-xs {
  justify-content: center;
}
@media only screen and (min-width: 576px) {
  .grid, .grid-xs {
    display: grid;
  }
}
@media screen and (min-width: 1400px) {
  .grid.xl-full, .xl-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.xl-half, .xl-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.xl-thirds, .xl-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.xl-two-thirds, .xl-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.xl-one-third, .xl-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.xl-quarters, .xl-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.xl-left-right, .xl-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 1400px) and (min-width: 576px) {
  .grid.lg-full, .lg-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.lg-half, .lg-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.lg-thirds, .lg-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.lg-two-thirds, .lg-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.lg-one-third, .lg-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.lg-quarters, .lg-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.lg-left-right, .lg-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}
@media screen and (max-width: 992px) and (min-width: 576px) {
  .grid.md-full, .md-full.grid-xs {
    grid-template-columns: 1fr;
  }
  .grid.md-half, .md-half.grid-xs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.md-thirds, .md-thirds.grid-xs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid.md-two-thirds, .md-two-thirds.grid-xs {
    grid-template-columns: 2fr 1fr;
  }
  .grid.md-one-third, .md-one-third.grid-xs {
    grid-template-columns: 1fr 2fr;
  }
  .grid.md-quarters, .md-quarters.grid-xs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid.md-left-right, .md-left-right.grid-xs {
    grid-template-columns: 1fr 2fr 1fr;
  }
}

.grid-xs {
  display: grid;
}

html,
body {
  margin: 0;
  padding: 0;
}

section {
  display: block;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 576px) {
  section.with-padding {
    padding: 1rem;
  }
}

aside {
  display: block;
  margin-bottom: 1rem;
}

hr {
  margin: 0 0 1rem 0;
  border: none;
  border-bottom: solid 1px #b1b4b6;
}

.container {
  margin: 1rem;
}

.example {
  padding: 1rem;
  border: dashed 1px #b1b4b6;
}
.example.dark-mode {
  border: none;
  background-color: #5d6a72;
}

.hidden,
.hide {
  display: none;
}

.visible,
.show {
  display: inline-block;
}

.no-scroll {
  overflow: hidden;
}

/* Global semantic colours */
html,
body {
  font-family: "Open Sans", Arial, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: normal;
  color: #231f20;
}

h1,
h2,
h3,
h4 {
  margin: 0 0 1rem 0;
  font-size: 1.15rem;
  font-weight: normal;
}
@media only screen and (min-width: 576px) {
  h1,
  h2,
  h3,
  h4 {
    font-size: 1.5rem;
  }
}

.content-heading {
  font-weight: 700;
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .content-heading {
    font-size: 2.4rem;
  }
}

.view-heading {
  font-weight: 300;
  font-size: 1.5rem;
}
@media only screen and (min-width: 576px) {
  .view-heading {
    font-size: 1.75rem;
  }
}
.view-heading--large {
  font-size: 2rem;
}
@media only screen and (min-width: 576px) {
  .view-heading--large {
    font-size: 2.5rem;
  }
}

.sub-heading {
  font-weight: 600;
  font-size: 1.15rem;
}
@media only screen and (min-width: 576px) {
  .sub-heading {
    font-size: 1.4rem;
  }
}
.sub-heading.secondary {
  color: #5d6a72;
}
@media only screen and (min-width: 576px) {
  .sub-heading.small {
    font-size: 1.2rem;
  }
}

.minor-heading {
  font-weight: 600;
  font-size: 1rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading {
    font-size: 1.15rem;
  }
}
.minor-heading.small {
  font-size: 0.9rem;
}
@media only screen and (min-width: 576px) {
  .minor-heading.small {
    font-size: 1rem;
  }
}

p {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  p {
    font-size: 1rem;
  }
}
p.secondary {
  color: #5d6a72;
}
p.leading {
  font-size: 1.15rem;
  line-height: 1.8rem;
}
@media only screen and (min-width: 576px) {
  p.leading {
    font-size: 1.25rem;
  }
}
p.small {
  font-size: 0.75rem;
  line-height: 1rem;
}
@media only screen and (min-width: 576px) {
  p.small {
    font-size: 0.9rem;
    line-height: 1.5rem;
  }
}

ul,
ol {
  margin: 0 0 1rem 0;
  padding-left: 1rem;
}
@media only screen and (min-width: 576px) {
  ul,
  ol {
    padding-left: 2rem;
  }
}
ul li,
ol li {
  font-size: 0.9rem;
  line-height: 1.5rem;
}
@media only screen and (min-width: 576px) {
  ul li,
  ol li {
    font-size: 1rem;
  }
}

b,
strong {
  font-weight: 600;
}

code {
  padding: 1rem !important;
  font-size: 1rem;
  line-height: 1.4rem;
}

pre {
  margin: 0 0 1rem 0;
}

.visually-hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 0;
  height: 0;
  overflow: hidden;
}

.text-left {
  text-align: left;
}

@media only screen and (min-width: 576px) {
  .text-right {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .text-right--md {
    text-align: right;
  }
}

.text-centre {
  text-align: center;
}

.header {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: 1px 1px 3px 1px rgba(93, 106, 114, 0.2);
  height: 60px;
  align-items: center;
  align-content: center;
  padding: 0 1rem;
  box-sizing: border-box;
  background-color: #fff;
}
.header.sticky {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
}
.header .app-heading {
  display: flex;
  align-items: center;
}
.header .app-heading .app-logo {
  display: inline-block;
  width: auto;
  height: 40px;
  margin-right: 1rem;
}
.header .user {
  justify-self: end;
}
.header .user__name {
  display: none;
}
@media only screen and (min-width: 576px) {
  .header .user__name {
    display: inline-block;
    color: #231f20;
  }
}
.header .user .logout {
  margin-left: 1rem;
  color: #231f20;
  text-decoration: none;
  border-bottom: solid 2px transparent;
}
.header .user .logout:hover {
  color: rgba(35, 31, 32, 0.9);
  border-bottom-color: #cf102d;
  transition: all 0.3s linear;
}

/* Global semantic colours */
.building {
  fill: transparent;
  fill-opacity: 0.25;
  stroke: #5d6a72;
  stroke-opacity: 0.75;
}
.building.ok {
  stroke: #08b39d;
  stroke-opacity: 1;
}
.building.fault {
  fill: #f9d135;
  stroke: #f9d135;
  stroke-opacity: 1;
}
.building.isolated {
  fill: #5072b6;
  stroke: #5072b6;
  stroke-opacity: 1;
}
.building.fire {
  fill: #cf102d;
  stroke: #cf102d;
  stroke-opacity: 1;
}
.building.plantalarm {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.prealarm {
  fill: #ee9714;
  stroke: #ee9714;
  stroke-opacity: 1;
}
.building.testalarm {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.function {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.recording {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.control {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.supervisoryalarm {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.maintenance {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.mnsalarm {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}
.building.unknown {
  fill: #5d6a72;
  stroke: #5d6a72;
  stroke-opacity: 1;
}

.building-label.marker-label {
  font-size: 0.9rem;
  padding: 0 0.25rem;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 3px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.building-marker.marker-label {
  background-color: #5d6a72;
}
.building-marker.marker-label span {
  display: inline-block;
  min-width: 24px;
  padding: 0 2px;
  text-align: center;
  line-height: 24px;
  font-size: 0.9rem;
  font-weight: 600;
  color: #fff;
}
.building-marker.marker-label.ok {
  background-color: #08b39d;
}
.building-marker.marker-label.fault {
  background-color: #f9d135;
}
.building-marker.marker-label.isolated {
  background-color: #5072b6;
}
.building-marker.marker-label.fire {
  background-color: #cf102d;
}
.building-marker.marker-label.plantalarm {
  background-color: #5d6a72;
}
.building-marker.marker-label.prealarm {
  background-color: #ee9714;
}
.building-marker.marker-label.testalarm {
  background-color: #5d6a72;
}
.building-marker.marker-label.function {
  background-color: #5d6a72;
}
.building-marker.marker-label.recording {
  background-color: #5d6a72;
}
.building-marker.marker-label.control {
  background-color: #5d6a72;
}
.building-marker.marker-label.supervisoryalarm {
  background-color: #5d6a72;
}
.building-marker.marker-label.maintenance {
  background-color: #5d6a72;
}
.building-marker.marker-label.mnsalarm {
  background-color: #5d6a72;
}
.building-marker.marker-label.unknown {
  background-color: #5d6a72;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

:root {
  --dark: #78fad1;
  --light: #ffffff;
  --success: #0abf30;
  --error: #e24d4c;
  --warning: #e9bd0c;
  --info: #3498db;
  --random: #eb43ff;
  --clipboard: #eb43ff;
}

body {
  min-height: 100vh;
}

.notifications {
  position: fixed;
  top: 30px;
  right: 20px;
  z-index: 4000;
}

.notifications :where(.toast, .column) {
  display: flex;
  align-items: center;
}

.notifications .toast {
  width: 400px;
  position: relative;
  overflow: hidden;
  list-style: none;
  border-radius: 4px;
  padding: 16px 17px;
  margin-bottom: 10px;
  background: var(--light);
  justify-content: space-between;
  animation: show_toast 0.3s ease forwards;
}

@keyframes show_toast {
  0% {
    transform: translateX(100%);
  }
  40% {
    transform: translateX(-5%);
  }
  80% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-10px);
  }
}
.notifications .toast.hide {
  animation: hide_toast 0.3s ease forwards;
}

@keyframes hide_toast {
  0% {
    transform: translateX(-10px);
  }
  40% {
    transform: translateX(0%);
  }
  80% {
    transform: translateX(-5%);
  }
  100% {
    transform: translateX(calc(100% + 20px));
  }
}
.toast::before {
  position: absolute;
  content: "";
  height: 3px;
  width: 100%;
  bottom: 0px;
  left: 0px;
  animation: progress 5s linear forwards;
}

@keyframes progress {
  100% {
    width: 0%;
  }
}
.toast.success::before,
.btn#success {
  background: var(--success);
}

.toast.error::before,
.btn#error {
  background: var(--error);
}

.toast.warning::before,
.btn#warning {
  background: var(--warning);
}

.toast.info::before,
.btn#info {
  background: var(--info);
}

.toast.random::before,
.btn#random {
  background: var(--random);
}

.toast.clipboard::before,
.btn#random {
  background: var(--clipboard);
}

.toast .column i {
  font-size: 1.75rem;
}

.toast.success .column i {
  color: var(--success);
}

.toast.error .column i {
  color: var(--error);
}

.toast.warning .column i {
  color: var(--warning);
}

.toast.info .column i {
  color: var(--info);
}

.toast.random .column i {
  color: var(--random);
}

.toast.clipboard .column i {
  color: var(--clipboard);
}

.toast .column span {
  font-size: 1.07rem;
  margin-left: 12px;
}

.toast i:last-child {
  color: #aeb0d7;
  cursor: pointer;
}

.toast i:last-child:hover {
  color: var(--dark);
}

.buttons .btn {
  border: none;
  outline: none;
  cursor: pointer;
  margin: 0 5px;
  color: var(--light);
  font-size: 1.2rem;
  padding: 10px 20px;
  border-radius: 4px;
}

@media screen and (max-width: 530px) {
  .notifications {
    width: 95%;
  }
  .notifications .toast {
    width: 100%;
    font-size: 1rem;
    margin-left: 20px;
  }
  .buttons .btn {
    margin: 0 1px;
    font-size: 1.1rem;
    padding: 8px 15px;
  }
}
#siteBuilderContainer {
  max-width: none;
}

.max-width-content {
  max-width: 1000px;
  margin: auto;
}

.clipboardButton {
  position: absolute;
  padding: 0.6rem 0 0 0.8rem;
  cursor: pointer;
}

#mapcentre,
#boundsSouthWest,
#boundsNorthEast {
  max-width: 95%;
}

h4.tooltip {
  margin: 0;
  font-size: 1.1rem;
}

.accordion {
  background-color: #d9d9d9;
  color: #444;
  cursor: pointer;
  padding: 1rem 0.5rem;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  transition: 0.4s;
  width: 100%;
  border-bottom: 2px solid #666;
  font-size: 1rem;
  font-weight: bold;
}
.accordion.active, .accordion:hover {
  background-color: #b9b9b9;
}

.accordionpanel {
  margin-bottom: 0;
  background-color: rgba(247, 247, 247, 0.4666666667);
  border-bottom: 1px solid #666;
  padding: 1rem 0.25rem;
}

#zones, #buildings {
  overflow-y: scroll;
  height: 100%;
  /* Style the accordion panel. Note: hidden by default */
}
#zones p.initial, #buildings p.initial {
  margin: 0.5rem;
  font-size: 0.9rem;
}
#zones .zone,
#zones .building, #buildings .zone,
#buildings .building {
  padding: 0;
  background-color: white;
  display: none;
  overflow: hidden;
  transition: 0.4s;
}
#zones .zone.show,
#zones .building.show, #buildings .zone.show,
#buildings .building.show {
  display: block;
}
#zones .zone pre,
#zones .building pre, #buildings .zone pre,
#buildings .building pre {
  margin-bottom: 0;
  padding: 0.25rem;
  font-size: 10pt;
  background-color: #ebebeb;
  position: relative;
  margin-bottom: 0;
}
#zones .zone pre code,
#zones .building pre code, #buildings .zone pre code,
#buildings .building pre code {
  white-space: pre-wrap;
  padding: 0px !important;
  font-size: 10pt;
}
#zones .zone pre .clipboardButton,
#zones .building pre .clipboardButton, #buildings .zone pre .clipboardButton,
#buildings .building pre .clipboardButton {
  position: absolute;
  top: 0pt;
  right: 5pt;
}
#zones .zone .zoneId code:before,
#zones .building .zoneId code:before, #buildings .zone .zoneId code:before,
#buildings .building .zoneId code:before {
  content: "Zone Id";
  display: block;
  top: 0px;
  font-weight: bold;
}
#zones .zone .zoneShape:before,
#zones .zone .buildingShape:before,
#zones .building .zoneShape:before,
#zones .building .buildingShape:before, #buildings .zone .zoneShape:before,
#buildings .zone .buildingShape:before,
#buildings .building .zoneShape:before,
#buildings .building .buildingShape:before {
  content: "Zone shape";
  display: block;
  top: 0px;
  font-weight: bold;
}
#zones .zone .zoneShape code, #zones .zone .zoneShape textarea,
#zones .zone .buildingShape code,
#zones .zone .buildingShape textarea,
#zones .building .zoneShape code,
#zones .building .zoneShape textarea,
#zones .building .buildingShape code,
#zones .building .buildingShape textarea, #buildings .zone .zoneShape code, #buildings .zone .zoneShape textarea,
#buildings .zone .buildingShape code,
#buildings .zone .buildingShape textarea,
#buildings .building .zoneShape code,
#buildings .building .zoneShape textarea,
#buildings .building .buildingShape code,
#buildings .building .buildingShape textarea {
  white-space: pre-wrap;
  padding: 0px !important;
}
#zones .zone .zoneShape textarea,
#zones .zone .buildingShape textarea,
#zones .building .zoneShape textarea,
#zones .building .buildingShape textarea, #buildings .zone .zoneShape textarea,
#buildings .zone .buildingShape textarea,
#buildings .building .zoneShape textarea,
#buildings .building .buildingShape textarea {
  width: 100%;
  min-height: 40px;
  background-color: #ccc;
}
#zones .zone .markerPosition code:before,
#zones .building .markerPosition code:before, #buildings .zone .markerPosition code:before,
#buildings .building .markerPosition code:before {
  content: "Label position";
  display: block;
  top: 0px;
  font-weight: bold;
}
#zones .zone .labelPosition code:before,
#zones .building .labelPosition code:before, #buildings .zone .labelPosition code:before,
#buildings .building .labelPosition code:before {
  content: "Label position";
  display: block;
  top: 0px;
  font-weight: bold;
}
#zones .zone .zoneDevices code,
#zones .building .zoneDevices code, #buildings .zone .zoneDevices code,
#buildings .building .zoneDevices code {
  max-height: 35px;
  overflow-y: scroll;
  display: block;
}
#zones .zone .zoneDevices code:before,
#zones .building .zoneDevices code:before, #buildings .zone .zoneDevices code:before,
#buildings .building .zoneDevices code:before {
  content: "Zone devices";
  display: block;
  top: 0px;
  font-weight: bold;
}

.internalMap {
  position: relative;
}
.internalMap.leaflet-container {
  background-color: #fff;
  border: 2px solid #fff;
  border-radius: 10pt;
  cursor: crosshair;
}
.internalMap .placerHud {
  position: absolute;
  z-index: 3000;
}
.internalMap .placerHud.root {
  border-color: #444;
}
.internalMap .placerHud.sub {
  background-color: #dfffde;
}
.internalMap .leaflet-interactive.building {
  cursor: crosshair;
}

.externalmap {
  position: relative;
}
.externalmap.leaflet-container {
  background-color: #fff;
  cursor: crosshair;
}

.device-marker {
  display: none;
  background-color: #5d6a72;
  border-radius: 24px;
  border: solid 1px #fff;
  text-align: center;
  line-height: 24px;
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
}
.device-marker.ok {
  background-color: #08b39d;
}
.device-marker.fault {
  background-color: #f9d135;
}
.device-marker.isolated {
  background-color: #5072b6;
}
.device-marker.fire {
  background-color: #cf102d;
}
.device-marker.plantalarm {
  background-color: #5d6a72;
}
.device-marker.prealarm {
  background-color: #ee9714;
}
.device-marker.testalarm {
  background-color: #5d6a72;
}
.device-marker.function {
  background-color: #5d6a72;
}
.device-marker.recording {
  background-color: #5d6a72;
}
.device-marker.control {
  background-color: #5d6a72;
}
.device-marker.supervisoryalarm {
  background-color: #5d6a72;
}
.device-marker.maintenance {
  background-color: #5d6a72;
}
.device-marker.mnsalarm {
  background-color: #5d6a72;
}
.device-marker.unknown {
  background-color: #5d6a72;
}
.device-marker:before {
  content: "";
  position: absolute;
  left: -28px;
  top: 10px;
  width: 80px;
  border: 1px dashed #b0b0b0;
  z-index: -1;
}
.device-marker:after {
  content: "";
  position: absolute;
  left: 10px;
  top: -28px;
  height: 80px;
  border: 1px dashed #b0b0b0;
  z-index: -1;
}
.device-marker:hover:before {
  content: "";
  position: absolute;
  left: -1000px;
  top: 10px;
  width: 2000px;
  border: 1px dashed #666;
}
.device-marker:hover:after {
  content: "";
  position: absolute;
  left: 10px;
  top: -1000px;
  height: 2000px;
  border: 1px dashed #666;
}
.device-marker.active:before {
  content: "";
  position: absolute;
  left: -2000px;
  top: 10px;
  width: 4000px;
  border: 1px dashed #b90000;
}
.device-marker.active:after {
  content: "";
  position: absolute;
  left: 10px;
  top: -2000px;
  height: 4000px;
  border: 1px dashed #b90000;
}
.device-marker.unmapped {
  opacity: 50%;
}
.device-marker.square {
  border: none;
  border-radius: 0;
}
.device-marker.square span.icon:after {
  left: 14px;
}
.device-marker.square span.icon:hover:after {
  left: 14px;
}
.device-marker.square.active span.icon:after {
  left: 14px;
}
.device-marker.anchortop span.anchor:before {
  content: "▲";
  top: -15pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchortopright span.anchor:before {
  content: "▲";
  top: -15pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchortopright span.anchor:after {
  content: "►";
  right: -11pt;
  top: 0;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorright span.anchor:before {
  content: "►";
  right: -11pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorbottomright span.anchor:before {
  content: "►";
  right: -11pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorbottomright span.anchor:after {
  content: "▼";
  top: 14pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorbottom span.anchor:before {
  content: "▼";
  top: 14pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorbottomleft span.anchor:before {
  content: "▼";
  top: 14pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorbottomleft span.anchor:after {
  content: "◄";
  left: -11pt;
  top: 0;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchorleft span.anchor:before {
  content: "◄";
  left: -10pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchortopleft span.anchor:before {
  content: "◄";
  left: -11pt;
  top: 0;
  position: absolute;
  font-size: 9pt;
  color: #666;
}
.device-marker.anchortopleft span.anchor:after {
  content: "▲";
  top: -15pt;
  left: 5pt;
  position: absolute;
  font-size: 9pt;
  color: #666;
}

.grid.one-four, .one-four.grid-xs {
  grid-template-columns: 1fr 5fr;
}
@media screen and (max-width: 992px) {
  .grid.one-four, .one-four.grid-xs {
    grid-template-columns: 2fr 4fr;
  }
}
.grid.address-search, .address-search.grid-xs {
  grid-template-columns: auto auto auto auto 40px;
  gap: 0rem;
}
.grid.address-search .form-input, .address-search.grid-xs .form-input {
  margin-bottom: 0rem;
}
.grid.address-search .btn.small, .address-search.grid-xs .btn.small {
  padding: 0.5rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.svgLaters .form-group {
  margin-bottom: 0rem;
}
.svgLaters .form-group .form-input {
  margin-bottom: 0rem;
}

.form-fieldset {
  max-width: 100%;
}

.tile.map-builder {
  padding: 0;
}

.building-label {
  position: relative;
}
.building-label:before {
  content: "324";
  position: absolute;
  left: 0px;
  top: -24px;
  display: inline-block;
  min-width: 24px;
  padding: 0 2px;
  text-align: center;
  line-height: 24px;
  font-size: 0.9rem;
  font-weight: 600;
  color: #fff;
  background-color: #08b39d;
}

.leaflet-editing-icon {
  cursor: crosshair;
}

body#internalMapBuilder .container,
body#externalMapBuilder .container,
body#siteMapBuilder .container,
body.minimalContainerMargin .container {
  margin: 0;
}
body#internalMapBuilder #nomap,
body#externalMapBuilder #nomap,
body#siteMapBuilder #nomap,
body.minimalContainerMargin #nomap {
  margin-top: 1rem;
}

#siteMapDrawingControls {
  max-height: 90vh;
  overflow-y: scroll;
  position: absolute;
  width: 240px;
  z-index: 1200;
  right: 1rem;
  bottom: 1rem;
}
#siteMapDrawingControls * {
  font-size: 0.85rem;
}
#siteMapDrawingControls .accordion {
  padding: 0.75rem 0.5rem;
}
#siteMapDrawingControls .accordionpanel {
  padding: 0.75rem 0.5rem;
}
#siteMapDrawingControls section {
  margin-bottom: 0rem;
}

#siteMapMainContainer {
  position: absolute;
  width: 100%;
  height: 100%;
}
#siteMapMainContainer .mapTitle {
  position: absolute;
  top: 1rem;
  left: 4rem;
  font-size: 2rem;
  z-index: 10000;
}

section#controls {
  height: 94vh;
  margin: 1rem 0rem 0rem 1rem;
}
section#controls .grid.fixed-right, section#controls .fixed-right.grid-xs {
  grid-template-columns: auto 40px;
  margin-bottom: 0.5rem;
}
section#controls .grid.fixed-right .btn.small, section#controls .fixed-right.grid-xs .btn.small {
  padding: 0.5rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
section#controls .grid.fixed-right .form-input, section#controls .fixed-right.grid-xs .form-input {
  margin-bottom: 0;
}
section#controls fieldset {
  margin: 0;
}
section#controls #zoneInfoSummary {
  font-size: 7pt;
  display: block;
  text-align: right;
}
section#controls.tile {
  padding: 0.5rem;
}
section#controls.tile .form-group .form-textarea {
  margin: 0;
  font-size: 9pt;
  line-height: 1rem;
}
section#controls.tile .form-group.grid, section#controls.tile .form-group.grid-xs {
  gap: 0;
}
section#controls.tile .form-group.grid .btn, section#controls.tile .form-group.grid-xs .btn {
  margin-right: 0;
}

section#siteMapDrawingControls {
  margin: 0rem 0rem 0rem 0rem;
}

.hidden {
  display: none;
}

#mapInfo {
  position: absolute;
  bottom: 0rem;
  right: 0rem;
  z-index: 2000;
}

#shortcuts {
  position: absolute;
  width: 30vw;
  max-width: 575px;
  top: 20%;
  left: 35vw;
  z-index: 3000;
}
#shortcuts dl {
  display: grid;
  grid-template-columns: 1fr 3fr;
  gap: 1rem;
  margin: 1rem 0;
  font-size: 0.9rem;
}
#shortcuts dl .key {
  border: 1px solid #dbdbdb;
  padding: 0.3rem 0.5rem;
  border-radius: 3px;
  text-align: center;
  font-size: 0.8rem;
  display: inline-block;
  margin-bottom: 0.25rem;
}
#shortcuts dl .keypad .key {
  width: 100px;
  position: relative;
}
#shortcuts dl .keypad .key sup {
  position: absolute;
  top: 2px;
  left: 2px;
  color: #9c9c9c;
}
#shortcuts dl dd ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

h1 {
  font-size: 1.5rem;
}

h2 {
  font-size: 1.3rem;
}

h3 {
  font-size: 1.1rem;
}

.app-heading h1 {
  margin-bottom: 0;
  font-size: 1.5rem;
}

.notSignedIn {
  color: #fff;
  background-color: #b90000;
  font-weight: bold;
  padding: 0.25rem;
  box-shadow: 0 0 0 0 rgb(0, 0, 0);
  transform: scale(1);
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  }
}

#notSignedInMessage {
  margin: 1rem;
  padding: 0.5rem;
  color: #fff;
  background-color: #b90000;
  animation: pulse 2s infinite;
}
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  }
}

#zoomSettings,
#buildingProperties {
  margin-bottom: 0;
}
#zoomSettings #zoomSettingsPanel,
#zoomSettings #buildingDetails,
#buildingProperties #zoomSettingsPanel,
#buildingProperties #buildingDetails {
  padding: 0.5rem;
}
#zoomSettings #zoomSettingsPanel .form-group,
#zoomSettings #buildingDetails .form-group,
#buildingProperties #zoomSettingsPanel .form-group,
#buildingProperties #buildingDetails .form-group {
  margin-bottom: 0rem;
}
#zoomSettings #zoomSettingsPanel .form-label,
#zoomSettings #buildingDetails .form-label,
#buildingProperties #zoomSettingsPanel .form-label,
#buildingProperties #buildingDetails .form-label {
  line-height: 2.5rem;
  margin-bottom: 0;
}
#zoomSettings #zoomSettingsPanel .form-input,
#zoomSettings #buildingDetails .form-input,
#buildingProperties #zoomSettingsPanel .form-input,
#buildingProperties #buildingDetails .form-input {
  margin-bottom: 0.25rem;
  margin-bottom: 0;
}

#buildingList {
  padding: 0.5rem;
}
#buildingList ul {
  list-style-type: none;
  padding: 0;
}
#buildingList ul li {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  grid-auto-rows: minmax(min-content, max-content);
  gap: 1rem;
}
.leaflet-interactive .leaflet-path-draggable {
  cursor: move;
}

.tile.obsolete {
  opacity: 0.35;
}/*# sourceMappingURL=styles.css.map */