body {
  margin: 0;
  padding: 0;
  min-width: 320px !important;
  overflow-x: hidden;
  color: var(--text-colour);
  font: normal normal var(--body-font-size)/25px var(--font-primary); }
  @media (min-width: 576px) and (max-width: 767px) {
    body {
      font-size: 16px !important; } }
  @media (min-width: 0px) and (max-width: 575px) {
    body {
      font-size: 14px !important; } }

main {
  width: 100%; }

html {
  width: 100%;
  scroll-behavior: auto !important; }

.fancybox-bg {
  background: var(--primary-colour); }

.fancybox-slide--html {
  padding: 6px 15px !important; }

.compensate-for-scrollbar {
  margin-right: 0 !important; }

.screen-reader {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0; }

.skip-to-content-link, .tab-highvis-link {
  z-index: 999999;
  position: fixed;
  left: 50%;
  top: 0;
  padding: 8px 20px;
  color: white !important;
  background: black !important;
  text-decoration: none !important;
  transform: translate(-50%, -100%);
  transition: transform  0.15s ease-in-out; }
  .skip-to-content-link:focus, .tab-highvis-link:focus {
    transform: translate(-50%, 0%); }

.home-section {
  padding: var(--home-margin) 0;
  background: var(--primary-colour); }
  .home-section:not(.home-section--home-announcements) {
    overflow: hidden; }
  .home-section:nth-child(odd) {
    background: hsla(calc(var(--primary-colour-h) + 0deg), calc(var(--primary-colour-s) + 0.001%), calc(var(--primary-colour-l) + -2%), calc(var(--primary-colour-a) - 0)); }
    .home-section:nth-child(odd) .case_study__images:before {
      background: hsla(calc(var(--primary-colour-h) + 0deg), calc(var(--primary-colour-s) + 0.001%), calc(var(--primary-colour-l) + -2%), calc(var(--primary-colour-a) - 0)); }
  .home-section.clear-bg {
    background: none; }
  .home-section.clear-bg + .clear-bg {
    padding-top: 0; }
  .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .home-section__heading {
    color: var(--secondary-colour); }
  .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__prev, .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__next {
    background: #fff !important;
    color: var(--primary-colour) !important; }
    .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__prev:hover, .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__prev:focus, .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__next:hover, .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .swiper-buttons__next:focus {
      background: rgba(255, 255, 255, 0.7) !important; }
  .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .button {
    color: var(--secondary-colour);
    box-shadow: 0 0 0 1px #fff; }
    .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .button:hover, .home-section:not(.clear-bg):not(.home-section--home-header):not(.home-section--home-announcements) .button:focus {
      color: var(--secondary-colour);
      box-shadow: 0 0 0 2px #fff; }
  .home-section__heading {
    text-align: center;
    margin-bottom: 30px;
    font-size: 53px;
    line-height: 60px; }
    @media (min-width: 0px) and (max-width: 575px) {
      .home-section__heading {
        font-size: 40px;
        line-height: 45px; } }
  .home-section .swiper-buttons__wrapper {
    margin-top: 40px; }
    @media (min-width: 0px) and (max-width: 575px) {
      .home-section .swiper-buttons__wrapper {
        margin-top: 30px; } }
  .home-section .container > .button-wrap {
    justify-content: center;
    align-items: center; }
    @media (min-width: 0px) and (max-width: 575px) {
      .home-section .container > .button-wrap {
        flex-direction: column; } }
    @media (min-width: 576px) and (max-width: 767px) {
      .home-section .container > .button-wrap {
        flex-direction: column; } }
    .home-section .container > .button-wrap .button {
      min-width: 260px; }
      @media (min-width: 0px) and (max-width: 575px) {
        .home-section .container > .button-wrap .button {
          width: 100%;
          max-width: 510px; } }
      @media (min-width: 576px) and (max-width: 767px) {
        .home-section .container > .button-wrap .button {
          width: 100%;
          max-width: 510px; } }
  @media (min-width: 768px) {
    .home-section.has-button .swiper-buttons {
      gap: 300px; }
    .home-section.has-buttons .swiper-buttons {
      gap: 580px; }
    .home-section.has-swiper .button-wrap {
      margin-top: -59px; } }

/*
#page_widgets {
  > section:first-of-type:not(.clear-bg) { {
    padding-top: 0 !important;
  }
  > section:last-of-type:not(.clear-bg) { {
    padding-bottom: 0 !important;
  }
  > section:not(.clear-bg) {
    padding: var(--home-margin) 0 !important;
  }
}
*/
#responsive_query_check {
  display: none; }

:target:before {
  content: "";
  display: block;
  height: 90px;
  /* fixed header height*/
  margin: -90px 0 0;
  /* negative fixed header height */ }

#main_body a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more),
.body_wrapper a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more) {
  color: var(--link-colour);
  transition: color 0.2s ease-in-out;
  text-decoration: underline; }
  #main_body a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more):hover, #main_body a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more):focus,
  .body_wrapper a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more):hover,
  .body_wrapper a:not(.external_link):not(.document_link):not(.telephone_link):not(.email_link):not(.read_more):focus {
    text-decoration: underline !important;
    color: var(--link-colour-hover); }

* {
  outline: none;
  -webkit-font-smoothing: antialiased;
  /* This needs to be set or some font faced fonts look bold on Mac in Chrome/Webkit based browsers. */
  -moz-osx-font-smoothing: grayscale;
  /* Fixes font bold issue in Firefox version 25+ on Mac */ }

a[name] {
  padding-top: 80px;
  margin-top: -80px;
  display: inline-block;
  /* required for webkit browsers */ }

.content_editable a[name] {
  margin-top: 0;
  padding-top: 0; }

a {
  outline: 0 !important;
  cursor: pointer;
  text-decoration: none;
  color: var(--link-colour); }

a:hover,
a:active {
  color: var(--link-colour-hover);
  text-decoration: none; }

body:not(.is_mouse) a:focus, body:not(.is_mouse) button:focus, body:not(.is_mouse) .swiper-buttons__prev:focus, body:not(.is_mouse) .swiper-buttons__next:focus {
  outline: 2px dotted !important;
  outline-offset: -2px !important; }

p {
  padding: 0;
  margin: 0 0 var(--body-content-margin) 0; }

strong {
  font-weight: var(--font-bold-weight); }

img {
  border: 0; }

ul, ol {
  margin: 11px 0 15px 25px;
  padding: 0; }
  ul li, ol li {
    margin: 3px 0; }
    ul li ul, ul li ol, ol li ul, ol li ol {
      margin-top: 0px; }

ul li {
  list-style: none; }

.button {
  z-index: 1;
  overflow: hidden;
  font-family: var(--font-primary);
  color: var(--primary-colour);
  font-size: 14px;
  line-height: 19px;
  height: 60px;
  min-width: 230px;
  max-width: 310px;
  cursor: pointer;
  transition: box-shadow 0.2s ease-in-out;
  border: none;
  border-radius: var(--site-border-radius);
  padding: 0 60px 0 20px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  text-align: left;
  box-shadow: 0 0 0 1px var(--primary-colour);
  position: relative;
  background: transparent; }
  .button-wrap {
    margin-top: 30px;
    display: flex;
    gap: 20px; }
    @media (min-width: 0px) and (max-width: 575px) {
      .button-wrap {
        flex-direction: column; } }
  .button:after {
    content: '\f061';
    font-weight: 300;
    position: absolute;
    right: 22px;
    font-size: 17px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--font-icon); }
  .button--watch:after {
    content: '\f04b'; }
  .button--play-button, .button--down-button {
    width: 60px;
    padding: 0;
    min-width: unset;
    overflow: visible; }
    .button--play-button:after, .button--down-button:after {
      content: '\f04b';
      font-weight: 600; }
    .button--play-button span, .button--down-button span {
      position: absolute;
      white-space: nowrap;
      left: calc(100% + 20px); }
  .button--down-button:after {
    font-size: 16px;
    font-weight: 400;
    content: '\f063'; }
  .button--down-button:hover:after, .button--down-button:focus:after {
    animation: wobble-down 2s ease-in-out infinite !important; }
  .button--play-icon {
    border: none;
    background: none;
    text-align: inherit;
    display: block;
    width: 80px;
    height: 80px;
    line-height: 80px;
    text-indent: 2px;
    text-align: center;
    color: #fff;
    font-size: 18px;
    background-color: var(--primary-colour);
    border-radius: 50%;
    position: relative; }
    .button--play-icon svg {
      position: absolute;
      z-index: 1;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: calc(100% - 8px);
      height: calc(100% - 8px); }
    .button--play-icon .circle-1 {
      opacity: 0.41; }
    .button--play-icon .circle-2 {
      stroke-dasharray: 350;
      stroke-dashoffset: 350;
      transition: stroke-dashoffset 0.5s linear;
      stroke: #fff; }
    .button--play-icon:hover .circle-2, .button--play-icon:focus .circle-2, .button--play-icon__parent-hover:hover .circle-2, .button--play-icon__parent-hover:focus .circle-2 {
      stroke-dashoffset: 0; }
  .button:hover, .button:focus {
    color: var(--primary-colour);
    box-shadow: 0 0 0 2px var(--primary-colour); }
    .button:hover:after, .button:focus:after {
      animation: wobble-right 2s ease-in-out infinite; }
  .button--with-bg {
    background: var(--primary-colour);
    color: var(--secondary-colour);
    transition: background 0.2s ease-in-out, color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; }
    .button--with-bg:hover, .button--with-bg:focus {
      color: var(--primary-colour);
      background: var(--secondary-colour);
      box-shadow: 0 0 0 1px var(--secondary-colour); }
  .button--white {
    color: #fff;
    box-shadow: 0 0 0 1px #fff; }
    .button--white:hover, .button--white:focus {
      color: #fff;
      box-shadow: 0 0 0 2px #fff; }
  .button--primary {
    color: var(--primary-colour) !important;
    box-shadow: 0 0 0 1px var(--primary-colour) !important; }

.read_more {
  display: inline-block;
  font-family: var(--font-primary);
  color: var(--primary-colour);
  font-weight: 700; }
  .read_more i, .read_more svg, .read_more:before {
    display: none; }
  .read_more:hover, .read_more:focus {
    color: var(--link-colour-hover); }

.no-image-placeholder {
  background-image: url("/custom_images/noimage_placeholder.png") !important;
  background-color: var(--placeholder-image-bg-colour) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: unset !important; }

.caption_wrapper {
  display: inline-block; }
  .caption_wrapper .caption {
    text-align: center;
    font-style: italic;
    font-size: 14px;
    padding: 15px 0;
    border-bottom: 1px solid hsla(calc(var(--light-grey-h) + 0deg), calc(var(--light-grey-s) + 0.001%), calc(var(--light-grey-l) + -5%), calc(var(--light-grey-a) - 0)); }

.module_back {
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
  gap: 25px;
  align-items: center;
  font-family: var(--font-heading);
  transition: 0.2s ease-in-out;
  letter-spacing: 1.1px;
  text-transform: uppercase; }
  .module_back i, .module_back svg, .module_back:before {
    font-size: 16px; }
  .module_back:before {
    font-family: var(--font-icon);
    font-weight: 300;
    content: "\f060"; }
  .module_back:hover:before, .module_back:focus:before {
    animation: jumpLeft .6s ease-in-out;
    opacity: .7; }

@keyframes jumpLeft {
  50% {
    transform: translateX(-4px); } }

.clfx {
  zoom: 1; }
  .clfx:before, .clfx:after {
    content: "";
    display: table; }
  .clfx:after {
    clear: both; }

.break_word {
  overflow-wrap: break-word; }

.ellipsis {
  overflow: hidden; }

.ellip {
  display: block;
  height: 100%; }

.ellip-line {
  display: inline-block;
  text-overflow: ellipsis;
  white-space: nowrap;
  word-wrap: normal;
  max-width: 100%; }

.ellip,
.ellip-line {
  position: relative;
  overflow: hidden; }

.container .container {
  width: auto;
  padding: 0; }

.hide {
  display: none; }

.bold {
  font-weight: bold !important; }

.noborder {
  border: 0 !important; }

#cb_cookie_policy_popup #_cb_accept, #cb_cookie_policy_popup .cb_cookie_policy_popup_icon span {
  background: var(--primary-colour) !important; }

#cb_cookie_policy_popup #_cb_accept:hover {
  background: #000  !important; }

.picture picture img {
  max-width: 100%; }

.picture.picture--cover {
  position: relative; }
  .picture.picture--cover picture {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex; }
    .picture.picture--cover picture img {
      object-fit: cover;
      height: auto;
      width: 100%;
      min-height: 100%; }

#google_translate {
  width: auto !important;
  background: none !important; }
  #google_translate.hide-translate {
    display: none; }
  #google_translate select, #google_translate > div {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    cursor: pointer;
    opacity: 0;
    margin: 0; }
  #google_translate > div {
    opacity: 0; }
    #google_translate > div span {
      display: none; }
  #google_translate #google_translate_button {
    background: none;
    border: 0;
    color: var(--secondary-colour);
    display: flex;
    gap: 10px;
    align-items: center;
    transition: color ease-in-out 0.2s; }
    #google_translate #google_translate_button i {
      transition: transform 0.2s linear; }
  #google_translate:hover #google_translate_button, #google_translate:focus #google_translate_button {
    opacity: 0.7; }
    #google_translate:hover #google_translate_button .fa-angle-down, #google_translate:focus #google_translate_button .fa-angle-down {
      transform: rotate(-180deg); }

:root {
  --screen-xs-min: 0;
  --screen-xs-max: 575px;
  --screen-sm-min: 576px;
  --screen-sm-max: 767px;
  --screen-md-min: 768px;
  --screen-md-max: 991px;
  --screen-lg-min: 992px;
  --screen-lg-max: 1199px;
  --screen-xl-min: 1200px;
  --screen-xl-max: 1399px;
  --screen-xxl-min: 1400px;
  --screen-xxl-max: 99999px; }

.width_10 {
  width: 10px; }

.width_20 {
  width: 20px; }

.width_30 {
  width: 30px; }

.width_40 {
  width: 40px; }

.width_50 {
  width: 50px; }

.width_60 {
  width: 60px; }

.width_70 {
  width: 70px; }

.width_80 {
  width: 80px; }

.width_90 {
  width: 90px; }

.width_100 {
  width: 100px; }

.width_110 {
  width: 110px; }

.width_120 {
  width: 120px; }

.width_130 {
  width: 130px; }

.width_140 {
  width: 140px; }

.width_150 {
  width: 150px; }

.width_160 {
  width: 160px; }

.width_170 {
  width: 170px; }

.width_180 {
  width: 180px; }

.width_190 {
  width: 190px; }

.width_200 {
  width: 200px; }

@media (min-width: 0px) and (max-width: 575px) {
  .hide-xs, .hide-xxs {
    display: none; } }

@media (min-width: 576px) and (max-width: 767px) {
  .hide-sm {
    display: none; } }

@media (min-width: 768px) and (max-width: 991px) {
  .hide-md {
    display: none; } }

@media (min-width: 992px) and (max-width: 1199px) {
  .hide-lg {
    display: none; } }

@media (min-width: 1200px) and (max-width: 1399px) {
  .hide-xl {
    display: none; } }

@media (min-width: 1400px) {
  .hide-xxl {
    display: none; } }

@keyframes wobble-right {
  16.65% {
    transform: translate(6px, -50%); }
  33.3% {
    transform: translate(0px, -50%); }
  49.95% {
    transform: translate(4px, -50%); }
  66.6% {
    transform: translate(0px, -50%); }
  83.25% {
    transform: translate(1px, -50%); }
  100% {
    transform: translate(0, -50%); } }

@keyframes wobble-down {
  16.65% {
    transform: translateY(calc(-50% + 6px)); }
  33.3% {
    transform: translateY(-50%); }
  49.95% {
    transform: translateY(calc(-50% + 4px)); }
  66.6% {
    transform: translateY(-50%); }
  83.25% {
    transform: translateY(calc(-50% + 1px)); } }
