.cms ol:not(.check-list) {
  counter-reset: li;
}
.cms ol:not(.check-list) li {
  counter-increment: li;
}
.cms ol:not(.check-list) li:before {
  content: counter(li);
}

.list li, .cms ul li {
  display: -webkit-flex;
  display: flex;
}
.list li + li, .cms ul li + li {
  margin-top: 5px;
}
.list li:before, .cms ul li:before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  display: block;
  margin-right: 10px;
  margin-top: 0.65em;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
}
.cms ol:not(.check-list) {
  counter-reset: li;
}
.cms ol:not(.check-list) li {
  counter-increment: li;
}
.cms ol:not(.check-list) li:before {
  content: counter(li);
}

.cms table {
  width: 100%;
  line-height: 1.4;
}
.cms table tbody tr {
  background: var(--colour-neutral);
}
.cms table tbody tr:nth-child(even) {
  background: var(--colour-accent);
}
.cms table tbody td {
  padding-top: 8px;
  padding-bottom: 8px;
}
.cms table table {
  width: 100%;
}
.cms table td,
.cms table th {
  padding-left: calc(var(--spacing-internal) / 2);
  padding-right: calc(var(--spacing-internal) / 2);
  width: 50%;
}
.cms table td:first-child,
.cms table th:first-child {
  padding-left: var(--spacing-internal);
}
.cms table td:last-child,
.cms table th:last-child {
  padding-right: var(--spacing-internal);
}
.cms table thead {
  text-align: left;
  background: var(--table-head-bg);
  color: var(--colour-neutral);
}
.cms table thead th {
  background: var(--table-head-bg);
  font-family: var(--font-family-title);
  vertical-align: middle;
  padding-top: 15px;
  padding-bottom: 15px;
}
.cms table thead th,
.cms table thead td {
  border-bottom: var(--border-style) 2px var(--colour-border);
}
.cms table tbody td {
  border-bottom: var(--border-style) 1px var(--colour-border);
  vertical-align: middle;
}
.cms table tbody td.has-button {
  padding-top: var(--spacing-internal);
  padding-bottom: var(--spacing-internal);
}
.cms table tbody tr {
  border-bottom: solid 1px var(--colour-border);
}
.cms table .embed-th {
  display: none;
}
@media (min-width: 992px) {
  .cms table td,
  .cms table th {
    padding-left: calc(0.5 * var(--spacing-mobile));
    padding-right: calc(0.5 * var(--spacing-mobile));
  }
}
@media (min-width: 992px) and (min-width: 768px) {
  .cms table td,
  .cms table th {
    padding-left: calc(0.5 * var(--spacing-tablet));
    padding-right: calc(0.5 * var(--spacing-tablet));
  }
}
@media (min-width: 992px) and (min-width: 992px) {
  .cms table td,
  .cms table th {
    padding-left: calc(0.5 * var(--spacing-desktop));
    padding-right: calc(0.5 * var(--spacing-desktop));
  }
}
@media (min-width: 992px) and (min-width: 1200px) {
  .cms table td,
  .cms table th {
    padding-left: calc(0.5 * var(--spacing-large));
    padding-right: calc(0.5 * var(--spacing-large));
  }
}
@media (min-width: 1200px) {
  .cms table {
    table-layout: fixed;
  }
}

.keyboard-input .cms a:focus:not(.button), .cms .keyboard-input a:focus:not(.button) {
  box-shadow: 0 0 0 1px var(--colour-one);
  outline: none;
}

.cms a:not(.button) {
  color: var(--colour-link);
  text-decoration: underline;
  cursor: pointer;
}
.cms a:hover:not(.button) {
  text-decoration: none;
}
.theme--2 .cms a:not(.button), .cms .theme--2 a:not(.button) {
  color: currentColor !important;
}
a .cms a:not(.button), .cms a a:not(.button) {
  text-decoration: none;
}
a:hover .cms a:not(.button), .cms a:hover a:not(.button) {
  text-decoration: underline;
}
.cms a:not(.button) > span {
  vertical-align: middle;
}
.cms a.has-text.has-icon-pre:not(.button) .icon-pre {
  margin-right: calc(var(--spacing-internal) / 2);
}
.cms a.has-text.has-icon-post:not(.button) .icon-post {
  margin-left: calc(var(--spacing-internal) / 2);
}

.cms--align-center {
  text-align: center;
}
.cms--align-center ul,
.cms--align-center ol {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
}
.cms--align-right {
  text-align: right;
}
.cms--align-right ul,
.cms--align-right ol {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}
.cms > * + * {
  margin-top: var(--spacing-internal);
}
.cms h1,
.cms h2,
.cms h3,
.cms h4,
.cms h5,
.cms h6,
.cms .set-h1,
.cms .set-h2,
.cms .set-h3,
.cms .set-h4,
.cms .set-h5,
.cms .set-h6 {
  font-family: var(--font-family-title);
  color: var(--colour-title);
  font-weight: var(--font-weight-bold);
}
.cms h1,
.cms .set-h1 {
  font-size: calc(var(--font-size-1) * 1rem);
  line-height: var(--line-height-title);
}
@media (min-width: 768px) {
  .cms h1,
  .cms .set-h1 {
    font-size: calc(var(--font-size-1-768) * 1rem);
    line-height: var(--line-height-title-768);
  }
}
@media (min-width: 992px) {
  .cms h1,
  .cms .set-h1 {
    font-size: calc(var(--font-size-1-992) * 1rem);
    line-height: var(--line-height-title-992);
  }
}
@media (min-width: 1200px) {
  .cms h1,
  .cms .set-h1 {
    font-size: calc(var(--font-size-1-1200) * 1rem);
    line-height: var(--line-height-title-1200);
  }
}
.cms h2,
.cms .set-h2 {
  font-size: calc(var(--font-size-2) * 1rem);
  line-height: var(--line-height-title);
}
@media (min-width: 768px) {
  .cms h2,
  .cms .set-h2 {
    font-size: calc(var(--font-size-2-768) * 1rem);
    line-height: var(--line-height-title-768);
  }
}
@media (min-width: 992px) {
  .cms h2,
  .cms .set-h2 {
    font-size: calc(var(--font-size-2-992) * 1rem);
    line-height: var(--line-height-title-992);
  }
}
@media (min-width: 1200px) {
  .cms h2,
  .cms .set-h2 {
    font-size: calc(var(--font-size-2-1200) * 1rem);
    line-height: var(--line-height-title-1200);
  }
}
.cms h3,
.cms .set-h3 {
  font-size: calc(var(--font-size-3) * 1rem);
  line-height: var(--line-height-title);
}
@media (min-width: 768px) {
  .cms h3,
  .cms .set-h3 {
    font-size: calc(var(--font-size-3-768) * 1rem);
    line-height: var(--line-height-title-768);
  }
}
@media (min-width: 992px) {
  .cms h3,
  .cms .set-h3 {
    font-size: calc(var(--font-size-3-992) * 1rem);
    line-height: var(--line-height-title-992);
  }
}
@media (min-width: 1200px) {
  .cms h3,
  .cms .set-h3 {
    font-size: calc(var(--font-size-3-1200) * 1rem);
    line-height: var(--line-height-title-1200);
  }
}
.cms h4,
.cms .set-h4 {
  font-size: calc(var(--font-size-4) * 1rem);
  line-height: var(--line-height-body);
}
@media (min-width: 768px) {
  .cms h4,
  .cms .set-h4 {
    font-size: calc(var(--font-size-4-768) * 1rem);
    line-height: var(--line-height-body-768);
  }
}
@media (min-width: 992px) {
  .cms h4,
  .cms .set-h4 {
    font-size: calc(var(--font-size-4-992) * 1rem);
    line-height: var(--line-height-body-992);
  }
}
@media (min-width: 1200px) {
  .cms h4,
  .cms .set-h4 {
    font-size: calc(var(--font-size-4-1200) * 1rem);
    line-height: var(--line-height-body-1200);
  }
}
.cms h5,
.cms .set-h5 {
  font-size: calc(var(--font-size-5) * 1rem);
  line-height: var(--line-height-title);
}
@media (min-width: 768px) {
  .cms h5,
  .cms .set-h5 {
    font-size: calc(var(--font-size-5-768) * 1rem);
    line-height: var(--line-height-title-768);
  }
}
@media (min-width: 992px) {
  .cms h5,
  .cms .set-h5 {
    font-size: calc(var(--font-size-5-992) * 1rem);
    line-height: var(--line-height-title-992);
  }
}
@media (min-width: 1200px) {
  .cms h5,
  .cms .set-h5 {
    font-size: calc(var(--font-size-5-1200) * 1rem);
    line-height: var(--line-height-title-1200);
  }
}
.cms h6 {
  font-size: calc(var(--font-size-6) * 1rem);
  line-height: var(--line-height-title);
}
@media (min-width: 768px) {
  .cms h6 {
    font-size: calc(var(--font-size-6-768) * 1rem);
    line-height: var(--line-height-title-768);
  }
}
@media (min-width: 992px) {
  .cms h6 {
    font-size: calc(var(--font-size-6-992) * 1rem);
    line-height: var(--line-height-title-992);
  }
}
@media (min-width: 1200px) {
  .cms h6 {
    font-size: calc(var(--font-size-6-1200) * 1rem);
    line-height: var(--line-height-title-1200);
  }
}
.cms hr {
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--colour-border);
}
.cms blockquote {
  padding-left: calc(1 * var(--spacing-mobile));
  border-left: 3px solid var(--colour-one);
  font-style: italic;
}
@media (min-width: 768px) {
  .cms blockquote {
    padding-left: calc(1 * var(--spacing-tablet));
  }
}
@media (min-width: 992px) {
  .cms blockquote {
    padding-left: calc(1 * var(--spacing-desktop));
  }
}
@media (min-width: 1200px) {
  .cms blockquote {
    padding-left: calc(1 * var(--spacing-large));
  }
}
.cms > ul,
.cms > ol {
  margin-top: calc(var(--spacing-internal) - 10px);
}
.cms > ul[style*="text-align:left;"], .cms > ul[style*="text-align: left;"],
.cms > ol[style*="text-align:left;"],
.cms > ol[style*="text-align: left;"] {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: flex-start !important;
  align-items: flex-start !important;
}
.cms > ul[style*="text-align:center;"], .cms > ul[style*="text-align: center;"],
.cms > ol[style*="text-align:center;"],
.cms > ol[style*="text-align: center;"] {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center !important;
  align-items: center !important;
}
.cms > ul[style*="text-align:right;"], .cms > ul[style*="text-align: right;"],
.cms > ol[style*="text-align:right;"],
.cms > ol[style*="text-align: right;"] {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: flex-end !important;
  align-items: flex-end !important;
}
.cms ol:not(.check-list) li {
  display: -webkit-flex;
  display: flex;
}
.cms ol:not(.check-list) li:before {
  margin-right: 10px;
}
.cms ol:not(.check-list) li + li {
  margin-top: 5px;
}
.cms img {
  max-width: 100%;
}
.cms iframe[src*=youtube],
.cms iframe[src*="youtu.be"] {
  max-width: 100%;
}
.cms sub {
  vertical-align: sub;
  font-size: smaller;
}
.cms sup {
  vertical-align: super;
  font-size: smaller;
}
@media (min-width: 992px) {
  .cms--is-narrow {
    --max-width: 800px;
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 1500px) {
  .cms--is-narrow {
    --max-width: 946px;
  }
}