* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}

article {
  -webkit-font-smoothing: antialiased;
  color: var(--colour-header-body);
  background-color: var(--colour-header-background);
}

article p {
  margin-top: 0;
  margin-bottom: 8pt;
}

article li {
  margin-bottom: 4pt;
}

article a {
  color: unset;
}

article ul {
  -webkit-padding-start: 20px;
          padding-inline-start: 20px;
  -webkit-margin-before: 0.5em;
          margin-block-start: 0.5em;
  -webkit-margin-after: 0.5em;
          margin-block-end: 0.5em;
}

article .ql-size-small {
  font-size: 0.75em;
}

article .ql-size-large {
  font-size: 1.3em;
}

article div.menuBackground {
  display: none;
  color: var(--colour-controls-body);
  background-color: var(--colour-controls-background);
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 11;
  opacity: 0;
  -webkit-transition: opacity 300ms ease-in-out;
  transition: opacity 300ms ease-in-out;
}

article div.menuBackground.shown {
  opacity: 1;
}

article div.menuBackground i {
  position: absolute;
  top: 32px;
  right: 10px;
  width: 45px;
  text-align: center;
  font-size: 1.5em;
  cursor: pointer;
}

article div.menu {
  display: none;
  color: var(--colour-footer-body);
  background-color: var(--colour-footer-background);
  position: fixed;
  width: calc(100% - 66px);
  height: 100%;
  padding: 30px;
  z-index: 12;
  left: -100%;
  -webkit-transition: left 300ms ease-in-out;
  transition: left 300ms ease-in-out;
}

article div.menu.shown {
  left: 0;
}

article div.menu div {
  font-size: 1.2em;
  padding: 15px 0;
  cursor: pointer;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
}

article div.menu div:hover {
  opacity: 0.6;
}

article header {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

article header.desktop {
  height: 170px;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

article header.desktop div.container {
  max-width: 1670px;
  padding: 0 202px;
}

article header.desktop div.container img.logo {
  max-width: 300px;
  height: 170px;
  padding: 22px 0;
}

article header.mobile {
  height: 110px;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 9;
  display: none;
  color: var(--colour-header-body);
  background-color: var(--colour-header-background);
}

article header.mobile div.container {
  padding: 0 20px;
  text-align: center;
}

article header.mobile div.container div.menu-icon {
  width: 42px;
  text-align: center;
  padding: 8px;
  cursor: pointer;
}

article header.mobile div.container div.menu-icon i {
  font-size: 1.3em;
  vertical-align: middle;
}

article header.mobile div.container div.logoBox {
  margin: 0 5px;
}

article header.mobile div.container div.logoBox img.logo {
  max-width: 100%;
  height: 110px;
  padding: 10px;
  cursor: pointer;
}

article header.mobile div.container div.phone {
  border-radius: 21px;
  width: 42px;
  height: 42px;
  line-height: 44px;
  font-size: 1.2em;
}

article header.mobile div.container div.nophone {
  width: 42px;
  height: 42px;
  line-height: 44px;
  font-size: 1.5em;
}

article header div.container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  text-align: left;
}

article header div.container img.logo {
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: left;
     object-position: left;
}

article header div.container div.navigation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 3;
      -ms-flex-positive: 3;
          flex-grow: 3;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 0 16px;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

article header div.container div.navigation div {
  padding: 4px 0;
  margin: 0 12px;
  text-align: right;
  cursor: pointer;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
}

article header div.container div.navigation div:hover {
  opacity: 0.6;
}

article header div.container div.phone {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

article section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  color: var(--colour-1-body);
  background-color: var(--colour-1-background);
}

article section:nth-child(odd) {
  color: var(--colour-2-body);
  background-color: var(--colour-2-background);
}

article section.hero {
  background-color: black;
  position: relative;
  color: white;
  height: 854px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

article section.hero div.full {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

article section.hero div.darken {
  z-index: 3;
  background-color: rgba(0, 0, 0, 0.3);
}

article section.hero div.container {
  z-index: 4;
}

article section.hero div.container div.tagline {
  padding: 0 50px;
  margin-bottom: 30px;
  width: 100%;
}

article section.hero div.container div.intro {
  padding: 0 50px;
  width: 100%;
}

article section div.container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 1670px;
  padding: 60px 185px;
}

article section div.container div.sectionTitle {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  margin-bottom: 40px;
}

article section div.container div.post {
  display: inline-block;
  position: relative;
  padding: 17px;
  text-align: left;
  vertical-align: top;
  overflow-wrap: break-word;
}

article section div.container div.post div.content {
  overflow: hidden;
  position: relative;
}

article section div.container div.post div.content.has-more {
  cursor: pointer;
}

article section div.container div.post div.content div.more-fade {
  display: none;
  position: absolute;
  width: 100%;
  height: 50px;
  bottom: 0;
}

article section div.container div.read-more {
  width: 100%;
  padding: 10px 0;
  cursor: pointer;
}

article section div.container div.read-more:active {
  background-color: rgba(0, 0, 0, 0.1);
}

article section div.container div.service {
  width: 33.3333%;
}

article section div.container div.service div.img {
  width: 100%;
  padding-top: 67%;
  margin-bottom: 24px;
  position: relative;
  background-color: #000;
  color: white;
}

article section div.container div.service div.img div.title {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 0 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 3;
}

article section div.container div.service div.detail {
  opacity: 0.7;
  overflow: hidden;
}

article section div.container div.promotion {
  width: 100%;
}

article section div.container div.promotion div.imgHolder {
  width: 25%;
  display: inline-block;
}

article section div.container div.promotion div.imgHolder div.img {
  width: 100%;
  padding-top: 67%;
  position: relative;
}

article section div.container div.promotion div.content {
  display: inline-block;
  width: 70%;
  vertical-align: top;
  padding-left: 17px;
}

article section div.container div.promotion div.content.titleOnly {
  width: 100%;
}

article section div.container div.promotion div.content div.title {
  width: 100%;
  margin-bottom: 12px;
}

article section div.container div.promotion div.content div.detail {
  opacity: 0.7;
}

article section div.container div.sliderContainer {
  width: 90%;
  position: relative;
}

article section div.container div.sliderContainer div.slider {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
  -ms-overflow-style: none;
}

article section div.container div.sliderContainer div.slider::-webkit-scrollbar {
  display: none;
}

article section div.container div.sliderContainer div.slider.snap {
  -ms-scroll-snap-type: x mandatory;
      scroll-snap-type: x mandatory;
  /* Chrome Canary */
  scroll-snap-type: mandatory;
  /* Firefox */
  -ms-scroll-snap-type: mandatory;
  /* IE/Edge */
  -webkit-scroll-snap-type: mandatory;
  /* Safari */
  -webkit-scroll-snap-destination: 0% 0%;
}

article section div.container div.sliderContainer div.sliderArrow {
  position: absolute;
  width: 50px;
  height: 100%;
  top: 0;
  font-size: 1em;
  opacity: 0.7;
  cursor: pointer;
}

article section div.container div.sliderContainer div.sliderArrow:active {
  background-color: rgba(0, 0, 0, 0.1);
}

article section div.container div.sliderContainer div.sliderArrow.left {
  left: -50px;
}

article section div.container div.sliderContainer div.sliderArrow.right {
  right: -50px;
}

article section div.container div.sliderContainer div.sliderArrow.disabled {
  opacity: 0.1;
  cursor: default;
}

article section div.container div.sliderContainer div.sliderArrow i {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

article section div.container div.testimonial {
  width: 33.3333%;
  white-space: normal;
  scroll-snap-align: start;
  /* latest (Chrome 69+) */
  -ms-scroll-snap-coordinate: 0% 0%;
      scroll-snap-coordinate: 0% 0%;
  /* older (Firefox/IE) */
  -webkit-scroll-snap-coordinate: 0% 0%;
  /* older (Safari) */
}

article section div.container div.testimonial div.img {
  width: 100%;
  padding-top: 67%;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
}

article section div.container div.testimonial div.img div.title {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 100%;
  padding: 0 24px;
  text-align: center;
}

article section div.container div.testimonial div.summary {
  margin-bottom: 12px;
}

article section div.container div.testimonial div.detail {
  opacity: 0.7;
}

article section div.container div.testimonial div.client {
  margin-top: 12px;
  opacity: 0.7;
}

article section div.container div.profile {
  width: 100%;
}

article section div.container div.profile div.imgHolder {
  width: 25%;
  display: inline-block;
}

article section div.container div.profile div.imgHolder div.img {
  width: 100%;
  padding-top: 67%;
  position: relative;
}

article section div.container div.profile div.content {
  display: inline-block;
  width: 70%;
  vertical-align: top;
  padding-left: 34px;
}

article section div.container div.profile div.content.titleOnly {
  width: 100%;
}

article section div.container div.profile div.content div.title {
  width: 100%;
  margin-bottom: 12px;
}

article section div.container div.profile div.content div.detail {
  opacity: 0.7;
}

article section.certifications {
  color: var(--colour-header-body);
  background-color: var(--colour-header-background);
  margin: 20px 0;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

article section.certifications img {
  max-width: 100px;
  max-height: 50px;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 8px;
  vertical-align: middle;
  -webkit-filter: grayscale(100%) contrast(120%);
          filter: grayscale(100%) contrast(120%);
}

article div.multi-image img {
  opacity: 0;
  z-index: 1;
  -webkit-transition: opacity 800ms ease-in-out;
  transition: opacity 800ms ease-in-out;
}

article div.multi-image img.shown {
  opacity: 1;
  z-index: 2;
}

article img.item {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

article div.dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  left: 0;
  bottom: 5%;
  width: 100%;
  z-index: 3;
}

article div.dots div {
  width: 6px;
  height: 6px;
  margin: 0 3px;
  border-radius: 100%;
  background-color: #fff;
  opacity: 0.2;
  -webkit-transition: opacity 300ms ease-in-out;
  transition: opacity 300ms ease-in-out;
}

article div.dots div.active {
  opacity: 0.7;
}

article footer {
  padding: 60px 20px;
  position: relative;
  text-align: center;
  color: var(--colour-footer-body);
  background-color: var(--colour-footer-background);
}

article footer div.phoneBlock {
  margin-bottom: 32px;
}

article footer div.phoneBlock div.phone {
  display: inline-block;
}

article footer div.contact {
  display: inline-block;
}

article footer div.contact div.orgName {
  margin-bottom: 10px;
}

article footer div.contact div.details {
  opacity: 0.7;
  line-height: 1.6em;
  padding-top: 10px;
}

article footer div.contact div.details strong {
  margin-right: 4px;
}

article footer div.contact div.details span {
  text-decoration: underline;
}

article footer div.contact div.social {
  font-size: 2em;
}

article footer div.contact div.social i {
  padding: 8px;
  opacity: 0.6;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
}

article footer div.contact div.social i:hover {
  opacity: 1;
}

article div.phone {
  padding: 0 12px;
  border-radius: 18px;
  height: 36px;
  line-height: 36px;
  letter-spacing: 0.5px;
  color: var(--colour-controls-title);
  background-color: var(--colour-controls-background);
}

article div.phone a {
  text-decoration: none;
}

article div.phone i.small {
  font-size: 0.85em;
}

article div.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-color: rgba(0, 0, 0, 0.7);
  opacity: 0;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: none;
}

article div.modal.inApp {
  position: absolute;
}

article div.modal.shown {
  z-index: 20;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

article div.modal.visible {
  opacity: 1;
}

article div.modal.postModal {
  background-color: rgba(0, 0, 0, 0.9);
}

article div.modal.postModal div.content {
  background-color: transparent;
  color: #fff;
}

article div.modal div.content {
  display: inline-block;
  text-align: left;
  width: 90%;
  max-width: 750px;
  max-height: calc(100% - 20px);
  color: #333;
  background-color: white;
  border-radius: 3px;
  overflow-y: auto;
  overflow-wrap: break-word;
  -webkit-overflow-scrolling: touch;
}

article div.modal div.content div.header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
  text-align: right;
  z-index: 22;
}

article div.modal div.content div.header div.closeButton {
  display: inline-block;
  text-align: center;
  width: 48px;
  height: 48px;
  cursor: pointer;
  -webkit-transition: opacity 200ms ease-in-out;
  transition: opacity 200ms ease-in-out;
}

article div.modal div.content div.header div.closeButton:hover {
  opacity: 0.6;
}

article div.modal div.content div.header div.closeButton i {
  line-height: 48px;
  font-size: 1.3em;
}

article div.modal div.content div.mainContent div.post div.images {
  position: relative;
  overflow: hidden;
}

article div.modal div.content div.mainContent div.post div.images.animated {
  -webkit-transition: height 200ms ease-out;
  transition: height 200ms ease-out;
}

article div.modal div.content div.mainContent div.post div.images div.slider {
  position: relative;
  width: 100%;
  overflow-x: auto;
  white-space: nowrap;
}

article div.modal div.content div.mainContent div.post div.images div.slider.snap {
  -webkit-overflow-scrolling: touch;
  -ms-scroll-snap-type: x mandatory;
  scroll-snap-type: x mandatory;
  scroll-snap-type: mandatory;
  -ms-scroll-snap-type: mandatory;
  -webkit-scroll-snap-type: mandatory;
  -webkit-scroll-snap-destination: 0% 0%;
}

article div.modal div.content div.mainContent div.post div.images div.slider::-webkit-scrollbar {
  display: none;
}

article div.modal div.content div.mainContent div.post div.images div.slider img {
  top: 0;
  width: 100%;
  padding: 0 40px;
  display: inline-block;
  vertical-align: top;
  scroll-snap-align: start;
  -ms-scroll-snap-coordinate: 0% 0%;
  scroll-snap-coordinate: 0% 0%;
  -webkit-scroll-snap-coordinate: 0% 0%;
}

article div.modal div.content div.mainContent div.post div.images div.arrow {
  position: absolute;
  top: 0;
  width: 40px;
  height: 100%;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  opacity: 0.8;
  cursor: pointer;
}

article div.modal div.content div.mainContent div.post div.images div.arrow:hover {
  opacity: 1;
}

article div.modal div.content div.mainContent div.post div.images div.arrow.left {
  left: 0;
}

article div.modal div.content div.mainContent div.post div.images div.arrow.right {
  right: 0;
}

article div.modal div.content div.mainContent div.post div.images div.arrow.disabled {
  opacity: 0.1 !important;
  cursor: default;
}

article div.modal div.content div.mainContent div.post div.texts {
  padding: 20px 40px;
}

article div.modal div.content div.mainContent div.post div.texts div {
  margin-bottom: 0.6em;
}

article div.modal div.content div.mainContent div.post.promotion {
  padding: 0 40px 40px 40px;
}

article div.modal div.content div.mainContent div.post.promotion div.imgHolder {
  width: 33.3333%;
  display: inline-block;
}

article div.modal div.content div.mainContent div.post.promotion div.imgHolder div.img {
  width: 100%;
  padding-top: 67%;
  position: relative;
}

article div.modal div.content div.mainContent div.post.promotion div.imgHolder div.img img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  -o-object-fit: cover;
     object-fit: cover;
}

article div.modal div.content div.mainContent div.post.promotion div.detailContent {
  display: inline-block;
  width: calc(66.6666% - 17px);
  vertical-align: top;
  padding-left: 17px;
}

article div.modal div.content div.mainContent div.post.promotion div.detailContent.titleOnly {
  width: 100%;
}

article div.modal div.content div.mainContent div.post.promotion div.detailContent div.title {
  width: 100%;
  margin-bottom: 12px;
}

article div.modal div.content div.mainContent div.post.promotion div.detailContent div.detail {
  opacity: 0.7;
}

@media screen and (max-width: 1200px) {
  article header.desktop > div.container {
    padding: 0 62px;
  }
  article section > div.container {
    padding: 60px 45px;
  }
}

@media screen and (max-width: 960px) {
  article header.desktop > div.container {
    padding: 0 47px;
  }
  article section > div.container {
    padding: 60px 30px;
  }
}

@media screen and (max-width: 768px) {
  article header.desktop > div.container {
    padding: 0 37px;
  }
  article section > div.container {
    padding: 60px 20px;
  }
}

@media screen and (max-width: 640px) {
  article header.desktop {
    display: none;
  }
  article header.mobile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  article section.hero {
    height: 420px;
  }
  article section.hero div.container div.tagline {
    padding: 0;
  }
  article section.hero div.container div.intro {
    padding: 0;
  }
  article section div.container {
    padding: 40px 20px;
  }
  article section div.container div.sectionTitle {
    margin-bottom: 20px;
  }
  article section div.container div.post {
    margin: 20px 0;
  }
  article section div.container div.service,
  article section div.container div.promotion,
  article section div.container div.testimonial,
  article section div.container div.profile {
    width: 100%;
    padding: 0;
  }
  article section div.container div.service div.img,
  article section div.container div.service div.titleOnly,
  article section div.container div.promotion div.img,
  article section div.container div.promotion div.titleOnly,
  article section div.container div.testimonial div.img,
  article section div.container div.testimonial div.titleOnly,
  article section div.container div.profile div.img,
  article section div.container div.profile div.titleOnly {
    width: 100%;
    margin-bottom: 14px;
  }
  article section div.container div.service div.imgHolder,
  article section div.container div.service div.content,
  article section div.container div.promotion div.imgHolder,
  article section div.container div.promotion div.content,
  article section div.container div.testimonial div.imgHolder,
  article section div.container div.testimonial div.content,
  article section div.container div.profile div.imgHolder,
  article section div.container div.profile div.content {
    width: 100%;
    padding-left: 0;
  }
  article section div.container div.service div.summary,
  article section div.container div.promotion div.summary,
  article section div.container div.testimonial div.summary,
  article section div.container div.profile div.summary {
    margin-bottom: 10px;
  }
  article section div.container div.service div.client,
  article section div.container div.promotion div.client,
  article section div.container div.testimonial div.client,
  article section div.container div.profile div.client {
    margin-top: 10px;
  }
  article section div.container div.sliderContainer div.slider {
    width: 100%;
  }
  article section div.container div.sliderContainer div.sliderArrow {
    width: 30px;
  }
  article section div.container div.sliderContainer div.sliderArrow.left {
    left: -30px;
  }
  article section div.container div.sliderContainer div.sliderArrow.right {
    right: -30px;
  }
  article section div.container div.testimonial {
    padding: 0 17px;
  }
  article footer {
    padding: 40px 20px;
  }
  article div.modal > div.content {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: unset;
  }
  article div.modal > div.content div.mainContent div.post div.imgHolder {
    width: 100% !important;
  }
  article div.modal > div.content div.mainContent div.post div.imgHolder div.img,
  article div.modal > div.content div.mainContent div.post div.imgHolder div.titleOnly {
    width: 100%;
    margin-bottom: 14px;
  }
  article div.modal > div.content div.mainContent div.post div.detailContent {
    width: 100% !important;
    padding-left: 0 !important;
  }
  article div.modal.postModal > div.content > div.mainContent {
    padding: 0;
  }
  article div.modal.postModal > div.content > div.mainContent div.post {
    margin-bottom: 40px;
  }
  article div.modal.postModal > div.content > div.mainContent div.post div.images > div.slider > img {
    padding: 0;
  }
  article div.modal.postModal > div.content > div.mainContent div.post div.images > div.arrow {
    width: 10vw;
  }
  article div.modal.postModal > div.content > div.mainContent div.post div.texts {
    padding: 20px 10vw;
  }
}
