@-moz-keyframes videoOverlayMove {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 6px;
  }
}
@-webkit-keyframes videoOverlayMove {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 6px;
  }
}
@-ms-keyframes videoOverlayMove {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 6px;
  }
}
@-o-keyframes videoOverlayMove {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 6px;
  }
}
@keyframes videoOverlayMove {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 6px;
  }
}
@-moz-keyframes carouselKenBurns {
  0% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@-webkit-keyframes carouselKenBurns {
  0% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@-ms-keyframes carouselKenBurns {
  0% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@-o-keyframes carouselKenBurns {
  0% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes carouselKenBurns {
  0% {
    transform: scale(1.3);
  }
  70% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
:root {
  --intro-fade-in-translate: -60%;
  --title-fade-in-scale: 110%;
  --cta-fade-in-translate: 30%;
}

@-moz-keyframes fadeInIntroText {
  0% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  20% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-webkit-keyframes fadeInIntroText {
  0% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  20% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-ms-keyframes fadeInIntroText {
  0% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  20% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-o-keyframes fadeInIntroText {
  0% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  20% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@keyframes fadeInIntroText {
  0% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  20% {
    opacity: 0;
    transform: translate(0, var(--intro-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-moz-keyframes fadeInTitle {
  0% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  50% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  100% {
    opacity: 1;
    scale: 100%;
  }
}
@-webkit-keyframes fadeInTitle {
  0% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  50% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  100% {
    opacity: 1;
    scale: 100%;
  }
}
@-ms-keyframes fadeInTitle {
  0% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  50% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  100% {
    opacity: 1;
    scale: 100%;
  }
}
@-o-keyframes fadeInTitle {
  0% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  50% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  100% {
    opacity: 1;
    scale: 100%;
  }
}
@keyframes fadeInTitle {
  0% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  50% {
    opacity: 0;
    scale: var(--title-fade-in-scale);
  }
  100% {
    opacity: 1;
    scale: 100%;
  }
}
@-moz-keyframes fadeInCallToAction {
  0% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  62.5% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-webkit-keyframes fadeInCallToAction {
  0% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  62.5% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-ms-keyframes fadeInCallToAction {
  0% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  62.5% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@-o-keyframes fadeInCallToAction {
  0% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  62.5% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
@keyframes fadeInCallToAction {
  0% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  62.5% {
    opacity: 0;
    transform: translate(0, var(--cta-fade-in-translate));
  }
  100% {
    opacity: 1;
    transform: translate(0, 0);
  }
}
:root .template-home-rows section.row:nth-child(2n+2) {
  background-color: color-mix(in srgb, var(--footer-background-colour) 70%, var(--main-background-colour));
}
:root .template-home-rows section.row.hero {
  background-color: color-mix(in srgb, var(--clr-blue_dark) 57.5%, var(--clr-black));
  background-color: var(--clr-black);
}
:root .template-home-rows section.row.hero div.wrapper div.background div.video div.video-overlay {
  background-image: linear-gradient(hsl(from var(--clr-black) h s l/0.05) 0%, hsl(from var(--clr-black) h s l/0.05) 50%, hsl(from var(--clr-black) h s l/0) 50%, hsl(from var(--clr-black) h s l/0) 100%);
}
:root .template-home-rows section.row.hero div.wrapper div.background div.overlay {
  background-color: hsl(from var(--clr-black) h s l/0.5);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content {
  color: var(--clr-white);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.title {
  text-shadow: 0 0.3rem 10px hsl(from var(--clr-black) h s l/0.5);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro {
  -webkit-animation: fadeInIntroText 5s;
  -moz-animation: fadeInIntroText 5s;
  -ms-animation: fadeInIntroText 5s;
  -o-animation: fadeInIntroText 5s;
  animation: fadeInIntroText 5s;
  animation-fill-mode: forwards;
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta {
  -webkit-animation: fadeInCallToAction 8s;
  -moz-animation: fadeInCallToAction 8s;
  -ms-animation: fadeInCallToAction 8s;
  -o-animation: fadeInCallToAction 8s;
  animation: fadeInCallToAction 8s;
  animation-fill-mode: forwards;
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a {
  box-shadow: 0 0.3rem 10px hsl(from var(--clr-black) h s l/0.25);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:link, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:visited, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:hover, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:active {
  color: var(--clr-white);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:link, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:visited {
  background-color: hsl(from var(--clr-blue) h s l/0.9);
}
:root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:hover, :root .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a:active {
  background-color: hsl(from var(--clr-blue_dark) h s l/0.9);
}
:root .template-home-rows section.row.hero-footer {
  background-color: var(--clr-blue_dark);
  background: linear-gradient(180deg, var(--clr-blue) 40%, var(--clr-blue_dark) 100%);
  color: color-mix(in srgb, var(--clr-blue_dark) 30%, var(--clr-white));
}
:root .template-home-rows section.row.introduction div.grid div.photo div.image {
  border-color: var(--clr-blue);
}
:root .template-home-rows section.row.services div.copy div.body ul li {
  background-color: hsl(from var(--clr-black) h s l/0.025);
}

[data-scheme=dark] .template-home-rows section.row.services div.copy div.body ul li {
  background-color: hsl(from var(--clr-white) h s l/0.05);
}

.template-home-rows section.row div.inner-wrapper {
  padding: 2rem 0;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row div.inner-wrapper {
    padding: 3rem 0;
  }
}
.template-home-rows section.row div.inner-wrapper div.page-width {
  width: 100%;
  padding: 0 1rem;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row div.inner-wrapper div.page-width {
    width: 916px;
    padding: 0;
  }
}
@media only screen and (min-width: 1210px) {
  .template-home-rows section.row div.inner-wrapper div.page-width {
    width: 1146px;
  }
  .template-home-rows section.row div.inner-wrapper div.page-width.one-column {
    width: 916px;
  }
}
.template-home-rows section.row.hero {
  --padding-multiplier: 1;
  text-align: center;
}
@media only screen and (max-width: 979px) {
  .template-home-rows section.row.hero {
    --minimum-height: calc( var( --header-height-mobile ) * 2 );
    --top-margin: calc( calc( var( --header-height-mobile ) * var( --padding-multiplier ) ) * -1 );
    --top-padding: calc( var( --header-height-mobile ) * var( --padding-multiplier ) );
  }
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero {
    --minimum-height: calc( var( --header-height-desktop ) * 2 );
    --top-margin: calc( calc( var( --header-height-desktop ) * var( --padding-multiplier ) ) * -1 );
    --top-padding: calc( var( --header-height-desktop ) * var( --padding-multiplier ) );
  }
}
.template-home-rows section.row.hero div.wrapper {
  position: relative;
  width: 100%;
  max-width: 2000px;
  margin: var(--top-margin) auto 0;
}
.template-home-rows section.row.hero div.wrapper div.background, .template-home-rows section.row.hero div.wrapper div.foreground {
  inset: 0;
  min-height: var(--minimum-height);
}
.template-home-rows section.row.hero div.wrapper div.background {
  position: absolute;
  height: 100%;
  z-index: 5;
}
.template-home-rows section.row.hero div.wrapper div.background div.singular, .template-home-rows section.row.hero div.wrapper div.background div.carousel, .template-home-rows section.row.hero div.wrapper div.background div.video, .template-home-rows section.row.hero div.wrapper div.background div.overlay {
  position: absolute;
  inset: 0;
}
.template-home-rows section.row.hero div.wrapper div.background div.singular {
  z-index: 1;
}
.template-home-rows section.row.hero div.wrapper div.background div.singular div.image {
  position: absolute;
  inset: 0;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel {
  z-index: 2;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper {
  width: 100% !important;
  height: 100% !important;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper * {
  width: 100% !important;
  height: 100% !important;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper div.bx-controls {
  display: none;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper ul.bxslider {
  list-style: none;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper ul.bxslider li.active-slide div.image {
  -webkit-animation: carouselKenBurns 25s;
  -moz-animation: carouselKenBurns 25s;
  -ms-animation: carouselKenBurns 25s;
  -o-animation: carouselKenBurns 25s;
  animation: carouselKenBurns 25s;
  animation-fill-mode: forwards;
}
.template-home-rows section.row.hero div.wrapper div.background div.carousel div.bx-wrapper ul.bxslider li div.image {
  transform: scale(1.3);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.template-home-rows section.row.hero div.wrapper div.background div.video {
  z-index: 3;
  overflow: hidden !important;
}
.template-home-rows section.row.hero div.wrapper div.background div.video video {
  position: absolute;
  z-index: 10;
  top: 50%;
  left: 50%;
  min-width: 100% !important;
  min-height: 100% !important;
  width: auto;
  height: auto;
  transform: translate(-50%, -50%);
}
.template-home-rows section.row.hero div.wrapper div.background div.video div.video-overlay {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  z-index: 15;
  background-size: auto 6px;
  filter: blur(1px);
  -webkit-animation: videoOverlayMove 1s;
  -moz-animation: videoOverlayMove 1s;
  -ms-animation: videoOverlayMove 1s;
  -o-animation: videoOverlayMove 1s;
  animation: videoOverlayMove 1s;
  animation-fill-mode: forwards;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
.template-home-rows section.row.hero div.wrapper div.background div.overlay {
  z-index: 4;
}
.template-home-rows section.row.hero div.wrapper div.foreground {
  position: relative;
  padding: var(--top-padding) 1rem 0;
  text-align: left;
  z-index: 10;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero div.wrapper div.foreground {
    padding-inline: 0;
  }
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content {
  --padding-bottom: 8rem;
  --padding-top: calc( var( --padding-bottom ) / 8 * 6 );
  width: 100%;
  margin: 0 auto;
  padding: var(--padding-top) 0 var(--padding-bottom);
  transform: translateY(calc(var(--padding-bottom) * 0.2));
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero div.wrapper div.foreground div.content {
    --padding-bottom: 10rem;
    width: 916px;
    transform: translateY(calc(var(--padding-bottom) * 0.4));
  }
}
@media only screen and (min-width: 1210px) {
  .template-home-rows section.row.hero div.wrapper div.foreground div.content {
    --padding-bottom: 18rem;
    width: 1146px;
    transform: translateY(calc(var(--padding-bottom) * 0.4));
  }
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro, .template-home-rows section.row.hero div.wrapper div.foreground div.content div.title, .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta {
  margin: 0 auto;
}
@media only screen and (min-width: 1210px) {
  .template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro, .template-home-rows section.row.hero div.wrapper div.foreground div.content div.title, .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta {
    max-width: 80%;
  }
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro {
  -webkit-animation: fadeInIntroText 5s;
  -moz-animation: fadeInIntroText 5s;
  -ms-animation: fadeInIntroText 5s;
  -o-animation: fadeInIntroText 5s;
  animation: fadeInIntroText 5s;
  animation-fill-mode: forwards;
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro p {
  padding: 0.7rem 1em 0.7rem 0;
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  line-height: 140%;
  text-transform: uppercase;
  text-wrap: balance;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero div.wrapper div.foreground div.content div.intro p {
    font-size: 0.9rem;
  }
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.title {
  -webkit-animation: fadeInTitle 6s;
  -moz-animation: fadeInTitle 6s;
  -ms-animation: fadeInTitle 6s;
  -o-animation: fadeInTitle 6s;
  animation: fadeInTitle 6s;
  animation-fill-mode: forwards;
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.title h1 {
  font-family: "Cal Sans", sans-serif;
  font-size: clamp(2rem, 1.6364rem + 1.8182vw, 3.25rem);
  line-height: 120%;
  text-wrap: balance;
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta {
  -webkit-animation: fadeInCallToAction 8s;
  -moz-animation: fadeInCallToAction 8s;
  -ms-animation: fadeInCallToAction 8s;
  -o-animation: fadeInCallToAction 8s;
  animation: fadeInCallToAction 8s;
  animation-fill-mode: forwards;
}
.template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a {
  display: inline-block;
  margin-top: 1.5rem;
  padding: 0.7em 2em;
  font-size: clamp(1rem, 0.8672rem + 0.625vw, 1.25rem);
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero div.wrapper div.foreground div.content div.cta a {
    font-size: 1.5rem;
  }
}
.template-home-rows section.row.hero-footer {
  font-family: "Cal Sans", sans-serif;
  text-align: center;
  text-transform: uppercase;
}
.template-home-rows section.row.hero-footer div.inner-wrapper {
  margin: 0 auto;
  padding: 1.5rem 0;
  font-size: 0.8rem;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero-footer div.inner-wrapper {
    font-size: 1rem;
  }
}
.template-home-rows section.row.hero-footer p {
  padding-left: 0.3rem;
  letter-spacing: 0.3rem;
  text-align: center;
  text-wrap: balance;
}
@media only screen and (min-width: 980px) {
  .template-home-rows section.row.hero-footer p {
    padding-left: 0.6rem;
    letter-spacing: 0.6rem;
  }
}
.template-home-rows section.row.introduction div.grid {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto auto;
  gap: 2rem 0;
  grid-template-areas: "photo" "copy";
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.introduction div.grid {
    grid-template-columns: 3.5fr 2fr;
    grid-template-rows: auto;
    gap: 0 2rem;
    grid-template-areas: "copy photo";
  }
}
.template-home-rows section.row.introduction div.grid div.copy {
  grid-area: copy;
  text-align: center;
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.introduction div.grid div.copy {
    text-align: left;
  }
}
.template-home-rows section.row.introduction div.grid div.copy div.title h1 {
  margin: 0 0 10px;
  padding: 0;
  text-wrap: pretty;
  font-family: "Cal Sans", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.introduction div.grid div.copy div.title h1 {
    font-size: 2.5rem;
  }
}
.template-home-rows section.row.introduction div.grid div.copy div.body p {
  padding: 0.3em 0;
  line-height: 140%;
}
.template-home-rows section.row.introduction div.grid div.photo {
  grid-area: photo;
  text-align: center;
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.introduction div.grid div.photo {
    padding-top: 1rem;
  }
}
.template-home-rows section.row.introduction div.grid div.photo div.image {
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
  border-bottom-style: solid;
  border-bottom-width: 10px;
}
.template-home-rows section.row.introduction div.grid div.photo div.image:before {
  content: "";
  float: left;
  padding-bottom: 133.3333333333%;
}
.template-home-rows section.row.introduction div.grid div.photo div.image:after {
  content: "";
  display: table;
  clear: both;
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.introduction div.grid div.photo div.image {
    max-width: 100%;
  }
}
.template-home-rows section.row.services div.copy div.title h1 {
  margin: 0 0 10px;
  padding: 0;
  text-align: center;
  text-wrap: pretty;
  font-family: "Cal Sans", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
}
@media only screen and (min-width: 769px) {
  .template-home-rows section.row.services div.copy div.title h1 {
    font-size: 2.5rem;
  }
}
.template-home-rows section.row.services div.copy div.body p {
  padding: 0.3em 0;
  line-height: 140%;
}
.template-home-rows section.row.services div.copy div.body ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  margin-top: 1.5rem;
  list-style: none;
}
.template-home-rows section.row.services div.copy div.body ul li {
  padding: 0.7rem 0.9rem;
  text-align: center;
  text-wrap: pretty;
}
