/* Created: Wed Nov 04 2026 17:45:46 GMT+0000 (Greenwich Mean Time) Version: 9.6.0 */
:root {
  
  /* ::: Layout */
  --_layout---max-width: 1400px; /* Maximum content width */
  --_layout---narrow-padding: 6%; /* Padding used to left/right to narrow an element */
  --_layout---gutter: clamp(1rem,3vw,2rem); /* Site gutter */

  /* ::: Typography */
  --_typography---base: 16px;
  --_typography---font-headers: "Tomorrow", arial, sans-serif;
  --_typography---font-body: "Golos Text", arial, sans-serif;
  --_typography---headers-case: uppercase;
  --_typography---letter-spacing: 0.05em;
  --_typography---line-height-tight: .95em;
  --_typography---line-height-normal: 1.35em;
  --_typography---line-height-loose: 1.75em;
  
  /* Fluid scaling relative to base */
  --_typography---text-6-rem: clamp(0.7rem, 0.7rem + 0.4vw, 1rem); /* Small */
  --_typography---text-5-rem: clamp(1rem, 0.9rem + 0.8vw, 1.5rem); /* Regular body */
  --_typography---text-4-rem: clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);
  --_typography---text-3-rem: clamp(2rem, 1.7rem + 1.6vw, 3rem);
  --_typography---text-2-rem: clamp(2.5rem, 2rem + 2vw, 4rem);
  --_typography---text-1-rem: clamp(3rem, 2.4rem + 3vw, 5rem);  
  --_typography---text-body-rem: var(--_typography---text-5-rem);
  --_typography---text-small-rem: var(--_typography---text-6-rem);   
  --_typography---text-title-rem: var(--_typography---text-4-rem);
  --_typography---text-display-rem: clamp(2.5rem, 10vw, 6rem); /* Display size */
  
  /* ::: Color Scheme */
  --_color---background: 238,238,238;
  --_color---text: 51,51,51;
  --_color---accent: 102,204,51;
  --_color---subtle-opacity: .75;
  
  /* ::: Media */
  --_media---square: 1;
  --_media---landscape: 16 / 9;
  --_media---portrait: 9 / 16;
  --_media---cinema: 21 / 9;
  --_media---radius: 4px;
  
  /* ::: Page Builder */
  
  /* Generic space between components */
  --_pagebuilder---spacer: 1rem;

}
/* Color schemes */
.color-vibrant {
  --_color---background: 102,204,51;
  --_color---media-background: 255, 255, 255;
  --_color---accent: 51, 51, 51;
  --_color---text: 51,51,51;
  --_color---button: 51,51,51;
}
.color-mid {
  --_color---background: 238, 238, 238;
  --_color---media-background: 255, 255, 255;
  --_color---accent: 102,204,51;
  --_color---text: 238, 238, 238;
  --_color---button: 51,51,51;
}
.color-dark {
  --_color---background: 51, 51, 51;
  --_color---media-background: 255, 255, 255;
  --_color---accent: 102,204,51;
  --_color---text: 238, 238, 238;
  --_color---button: 238, 238, 238;  
}
body {
  letter-spacing: var(--_typography---letter-spacing);
}
h1,h2,h3,h4,h5,h6 {
  font-family: var(--_typography---font-headers);
  text-transform: var(--_typography---headers-case);
  line-height: var(--_typography---line-height-tight);
}
/* Default vertical space between page builder components */
[data-page-builder] {
  /* margin: 1rem 0; */
}
.u-block {
  --max-width: 100%;
  --pad: 0;
  position: relative;
  display: block;
  box-sizing: border-box;
  container: inline-size;
  max-width: var(--max-width);
  padding-left: var(--pad);
  padding-right: var(--pad);
  margin-right: auto;
  margin-left: auto;
}
.u-block--pad {
  --pad: var(--_layout---gutter);
}
.u-block--wide,
.u-block--narrow {
  --max-width: var(--_layout---max-width);
}
.u-block--narrow {
  --pad: var(--_layout---narrow-padding);
  --pad: var(--_layout---narrow-padding);
}
.main {
  position: relative;
}
.directory {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.directory a {
  text-transform: uppercase;
  font-weight: bold;
}
.cnt {
  border-radius: 12px;
  overflow: hidden;
  margin: 1em;
}

.footer-legal {
  font-size: 1rem;
}

.footer-keywords {
  text-align: center;
  font-size: 0.75rem;
}

.footer {
  --brand-icon-size: 54px;
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;  
}
.footer, .footer p, .footer a {
  color: inherit;
}
// Space elements evenly
.footer__branding,
.footer__secondary-nav {
  position: relative;
  padding: 2em 0;
}

/* Footer branding & social */
.footer__branding {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  text-align: center;
  color: rgb(var(--_color---text));
}
.footer__branding a {
  color: inherit;
  text-decoration: none;
}
.footer__branding-text {
  position: relative;
  margin: 0;
  padding: 2em 0;
  text-transform: uppercase;
  font-weight: bold;
  font-size: .8em;
}
.footer__branding-logo {
  position: relative;
}
.footer__branding-logo-item {
  position: relative;
  display: inline-block;
  width: var(--brand-icon-size);
  height: var(--brand-icon-size);  
}
.footer__branding-logo-item img,
.footer__branding-logo-item svg {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
  text-decoration: 0;
  border: 0;
}
.footer__branding-social p {
  margin: 0;
  padding: 1em 0;
}
.footer__social-icons {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5em; 
  margin: 0;
  padding: 0;
  font-size: 1rem; 
}
.footer__social-icons li {
  display: inline-block;
  list-style: inside none;
  font-size: 1.5em;
  line-height: 1em;  
}
.footer__social-icon {
  position: relative;
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  color: inherit;
}
.footer__social-icon svg {
  width: 1em;
  height: 1em;
}
@media (min-width:800px){
  .footer__branding {
    text-align: left;
    flex-direction: row;
  }
  .footer__branding li a {
    padding: 0 .25em 0 0;
  }
  .footer__branding-social {
    text-align: right;
  }
  .footer__branding-logo {
    flex: auto;
  }
}

/* Secondary navigation */
.footer__secondary-nav {
  position: relative;
  padding: 3rem 0;
}
.footer__secondary-nav-items {
  --cols: 1;
  --gap: 1rem;
  grid-template-columns: repeat(var(--cols), 1fr);
  gap: var(--gap);
  display: none;
}
@media (min-width:800px){
  .footer__secondary-nav-items {
    --cols: 3;
    display: grid;
  }
  .footer__secondary-compact-menu {
    display: none;
  }
}
.footer__secondary-nav-item {
  position: relative;
  display: inline-block;
  vertical-align: top;
  box-sizing: border-box;
  text-align: center;
  font-size: 1rem;
}
.footer__secondary-nav-title {
  text-align: left;
  margin: 0;
  padding: 0;
  padding-bottom: 1.25em;
  text-transform: uppercase;
  border-color: inherit;
  color: inherit;
}
.footer__secondary-nav-list {
  position: relative;
  list-style: inside none;
  margin: 0;
  padding: 0;
  text-align: left;
  color: rgb(var(--_color---text),0.75);
}
.footer__secondary-nav-list a {
  color: inherit;
}
.footer__secondary-nav-list-item {
  position: relative;
}
.footer__secondary-nav-list-link {
  position: relative;
  display: block;
  padding: .25em 0;
  text-decoration: none;
  color: inherit;
}
.footer__secondary-nav__select {
  width: 100%;
}
.footer__secondary-compact-menu {
  position: relative;
}

.footer__legal {
  text-align: center;
  padding: 2em 0;
  font-size: var(--_typography---text-small-rem);
  color: rgba(var(--_color---text),0.5);
  p {
    font-size: .7em;
    line-height: 2em;
  }
}

/* Footer affiliate badges */
.footer__badges {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  filter: grayscale(1);
  opacity: 0.5; 
}
.footer__badge {
  display: inline-flex;
  width: 124px;
  text-decoration: none;
  border: 0;
}
.footer__badge img {
  display: inline-flex;
  position: relative;
  border: 0;
}

@media print {
  body {
    background: #fff !important;
    color: #000 !important;
  }
  h1,h2,h3,h4 {
     page-break-after: avoid;
  }
}
:root {
  --nav-bg-color: 102, 204, 51;
  --nav-fg-color: 51, 51, 51;
  --nav-mobile-height: 4em;
  --nav-tablet-height: 5em;
  --nav-desktop-height: 6em;
  --nav-line-width: 18px;
  --nav-border-thickness: 3px;
  --nav-spacing: 1em;
  --nav-pad: .75em;
  --nav-tint: 0,0,0;
}
.nav--is-open {
  overflow-y: scroll;
  background-color: rgb(var(--nav-bg-color));
}
.nav--is-open [data-nav-toggle-content] {
  display: none;
}

/* Invert branding */
.nav--is-open   
  .nav__branding {
    background-color: rgb(var(--nav-fg-color));
  } 
.nav--is-open 
  .nav__branding {
    color: rgb(var(--nav-bg-color));
  } 

.nav {
  position: relative;
  background-color: rgb(var(--nav-bg-color));
  -webkit-backface-visibility: hidden;
  z-index: 999;
  top: 0;
  font-family: var(--_typography---font-headers);
}
.nav__wrap {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;
}

.nav__branding {
  width: var(--nav-mobile-height);
  height: var(--nav-mobile-height);
  transition: background-color 500ms;
  color: rgb(var(--_color---text));
}
.nav__branding a,
.nav__branding svg {
  color: inherit;
}
.nav__branding a {
  position: relative;
  display: block;
  text-decoration: none;
  text-align: center;
  width: 100%;
  height: 100%;  
}
.nav__branding .icon {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 60%;
  height: 60%;
  transform: translate3d(-50%,-50%,0);
}
.nav__branding img {
  display: block;
  border: none;
  width: 100%;
  height: auto;
  padding: 1em;  
}

.nav__pre {
  --bgColor: #333;
  --fgColor: #66cc33;
  background-color: var(--bgColor);
}
.nav__pre * {
  color: var(--fgColor) !important;
}
.nav__pre .icon {
  width: 1em;
  height: 1em;
  fill: currentColor;
  vertical-align: middle;
}
.nav__pre .nav__pre__link {
  position: relative;
  display: inline-block;
  background-color: rgba(255,255,255,0.05);
  padding: .3rem 1rem;
  text-decoration: none;
}
.nav__list-item.nav--is-visible {
  display: block !important;
  opacity: 1 !important;
}
/* applied to expanded nodes */
.nav__list-item.nav--is-active,
.nav__list-item.nav--is-visible {
  background-color: rgba(var(--nav-tint),0.1);
}
.nav__list-container {
  display: none;
}

.nav--is-open 
  .nav__list-container {
    display: block;
}

.nav__topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.nav__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  box-sizing: border-box;
  background: none;
  border: 0;
  outline: none;
  padding: 1em;
  height: var(--nav-mobile-height);
  color: rgb(var(--nav-fg-color));
  cursor: pointer;  
  font-size: clamp(1rem, 3vw, 1.2rem);
}
.nav__button svg {
  width: 1em;
  height: 1em;
}
.nav__button-label {
  text-transform: uppercase;
  font-weight: bold;
}
/* Swap nav icons */
.nav__button-icon-open { display: none; }
.nav__button-icon-closed {}
.nav--is-open 
  .nav__button-icon-open {
  display: block;
}
.nav--is-open 
  .nav__button-icon-closed {
  display: none;
}

/* Evenly space primary and secondary navigation */
.nav__list-container {
  color: rgb(var(--nav-fg-color));
  font-size: clamp(1rem, 5vw, 1.5rem);
}
.nav__list-container a {
  text-decoration: none;
  color: inherit;
}

.nav__list {
  position: relative;
  display: flex;
  flex-direction: column;
  margin: 0;
  list-style: inside none;
  padding: 0;
}
.nav__list-item {
  position: relative;
  margin: 0;
  margin-bottom: 1px;
}
.nav__list-item a {
  position: relative;
  display: block;
  padding: var(--nav-pad);
  text-decoration: none;
  text-transform: uppercase;
}
.nav--is-parent { 
  font-weight: bold;
}
.nav__list-item.nav--is-child,
.nav__list-item.nav--is-grandchild {
  display: none;
  font-weight: normal;
}
.nav__list-item.nav--is-grandchild {
  margin: 0;
}
.nav__list-item.nav--has-icon {
  font-weight: bold;
}
.nav__list-item.nav--has-icon::before,
.nav__list-item.nav--has-icon::after {
  position: absolute;
  content: "";
  right: var(--nav-pad);
  top: 50%;
  z-index: 1;
  width: var(--nav-line-width);
  height: var(--nav-border-thickness);
  background-color: currentColor;
  pointer-events: none;
  opacity: 1;
  transition: opacity 500ms;
}
.nav__list-item.nav--has-icon::after {
  transform: rotate(90deg);
}
.nav__list-item.nav--has-icon.nav--is-active::after {
  opacity: 0;
}
.nav__list-item.nav--is-grandchild.nav--is-visible { 
  background-color: rgba(var(--nav-tint),.05);
}

/* Secondary compact links */
.nav__secondary-items {
  list-style: inside none;
  margin: 0;
  padding: var(--nav-spacing) var(--nav-pad);
  text-transform: uppercase;
  font-size: .75em;
}
.nav__secondary-item {
  margin: .25em 0;
}
.nav__secondary-item a {
  color: inherit;
  text-decoration: none;
  font-size: inherit;
}
@media (min-width:600px) {
  .nav__branding {
    width: var(--nav-tablet-height);
    height: var(--nav-tablet-height);
  }
  .nav__list {
    padding: 2em 0;
  }
}  
@media (min-width:800px){
  .nav__branding {
    width: var(--nav-desktop-height);
    height: var(--nav-desktop-height);
  }
}  
@media (min-width:1400px){
}

/* Do not print navigation */
@media print {
  .nav { display: none; }
}
/* Small pil devices for new labels etc */
.pil {
  position: relative;
  color: inherit;
  padding: 2px 8px;
  font-weight: bold;
  font-size: .44em;
  line-height: 1em;
  border: 2px solid currentColor;
  border-radius: 4px;
}
.c-vue-toolbar {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;  
}
.c-vue-toolbar--back {}
.c-vue-toolbar--pagination {}
.c-vue-toolbar--load-more {}
.c-back-toolbar {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;
}
.nav-tabs  {
  --bg-color: var(--_color---accent);
  --fg-color: var(--_color---text);
  position: relative;
  background: rgb(var(--bg-color));
  font-size: clamp(.85rem,2vw,1.25rem);
  color: rgba(var(--_color---text));
  padding: 1em 0;
}
.nav-tabs__wrap {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  margin: auto;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
}
.nav-tabs__list {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
  list-style-position: inside;
}
.nav-tabs__list-item {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav-tabs__list-item svg {
  width: 1em;
  height: 1em;
}
.nav-tabs__list-item a { 
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .5em;
  text-transform: uppercase;
  font-weight: bold;
  background-color: rgb(var(--bg-color));
  text-decoration: none;
  padding: .35em 1em;
  color: inherit; 
  border-radius: 40px;
  font-family: var(--_typography---font-headers);
}
.nav-tabs__list-item :with(a,span){
  transition: background-color 250ms ease, color 500ms;
}
.nav-tabs__list-item a:hover,
.nav-tabs__list-item a.nav-tab--is-active {
  color: rgb(var(--bg-color));
  background-color: rgb(var(--fg-color));
}

.nav-tab-child.nav-tab--is-active {
  display: block;
}
.nav-tab-child.nav-tab--is-inactive {
  display: none;  
}

@media print { display: none; }

.c-badge {
  --color: 255, 0, 0;
  --text-color: 255, 255, 255;
  position: relative;
  display: inline-block;
  padding: .35rem 1rem;
  font-size: .75rem;
  line-height: 1rem;
  font-weight: bold;
  font-family: var(--_typography---font-headers);
  border-radius: 24px;
  /* Solid variant */
  border: 2px solid rgb(var(--color));
  background-color: rgb(var(--color));
  color: rgb(var(--text-color));
  text-transform: uppercase;
}
/* Outline variant */
.c-badge--secondary {
  background-color: transparent;
  color: rgb(var(--color));
}
.c-model-styles {
  --cols-mobile: 1;
  --cols-desktop: 2;
  --cols: var(--cols-mobile);
  --gap: 1rem;
  --card-colour: #fafafa;
  position: relative;
  padding: var(--_pagebuilder---spacer) 0;
  font-size: 1rem;
}
.c-model-styles__list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--cols, 1), 1fr);
  gap: var(--gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-model-styles__list-item {
  position: relative;
  list-style: inside none;
  display: block;
  padding: 0;
  padding-bottom: 3em;
}
.c-model-styles__link {
  display: block;
  padding-bottom: 1em;
  background: var(--card-colour);
  border-radius: 4px;
  overflow: hidden;
  padding: 1em;
}
.c-model-styles__image {
  position: relative;
  font-size: 1em;
  margin: 0;
  padding: .5em 0;
  display: inline-block;
  border: 0;
  width: 100%;
  object-fit: contain;
  aspect-ratio: 1;
}
.c-model-styles__logo {
  position: absolute;
  display: block;
  bottom: 0;
  right: 0;
  height: 22px;
  max-width: 104px;
  pointer-events: none;
  opacity: .25;
  margin: 1.5rem;
}
.c-model-styles .c-badge {
  --color: 51, 51, 51;
  --text-color: 102, 204, 51;
  position: absolute;
  left: 0;
  top: 0;
  margin: 12px 0 0 -6px;
  z-index: 1;
}
.c-model-styles__label {
  padding: 1rem 0;
}
.c-model-styles__name {
  font-size: 1em;
}
.c-model-styles__description {
  font-size: .75em;
  opacity: var(--_color---subtle-opacity);
}
.c-model-styles__name,
.c-model-styles__description {
  margin: 0;
  padding: 0;
}
@media (min-width:720px) {
  .c-model-styles {
    --cols: var(--cols-desktop);
    font-size: 1.25rem;
  }
  .c-model-styles__list-item {
    display: inline-block;
    vertical-align: top;
    width: 50%;
    padding: 1em;
  }
}
.c-headline {
  position: relative;
  padding-bottom: 1rem;
  border-bottom: 2px solid rgb(var(--_color---accent));
  margin: 4rem 0;
}
.c-headline :where(h1,h2,h3,h4,h5,h6) {
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  font-size: var(--_typography---text-title-rem);
  margin: auto;  
}
.c-headline svg {
  width: 1em;
  height: 1em;
}
.c-list {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter) var(--_layout---narrow-padding);
  margin: var(--_pagebuilder---spacer) auto;
  color: rgb(var(--_color---text));
  font-size: var(--_typography---text-body-rem);
}
.c-list a {
  color: inherit;
}
.c-list ul {
  position: relative;
  list-style: inside none;
  font-size: 1em;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
}
.c-list li {
  padding: 1em 0;
}
.c-list li:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 26px;
  height: 2px;
  background-color: rgb(var(--_color---accent));
}
.c-text {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter) var(--_layout---narrow-padding);
  margin: var(--_pagebuilder---spacer) auto;
  font-size: var(--_typography---text-body-rem);
  color: inherit;
}
.gallery-component {
  --aspect-ratio: 1;
  --fit: cover;
  position: relative;
  margin: var(--_pagebuilder---spacer) 0;
}

.gallery-component--square { --aspect-ratio: var(--_media---square); }
.gallery-component--landscape { --aspect-ratio: var(--_media---landscape); }
.gallery-component--portrait { --aspect-ratio: var(--_media---portrait); }
.gallery-component--cinema { --aspect-ratio: var(--_media---cinema); }

.gallery-component--cover { --fit: cover; }
.gallery-component--contain { --fit: contain; }
.gallery-component--fill { --fit: fill; }

.gallery-component--top { --pos: top center; }
.gallery-component--top-left { --pos: top left; }
.gallery-component--top-right { --pos: top right; }

.gallery-component--center { --pos: center; }
.gallery-component--center-left { --pos: center left; }
.gallery-component--center-right { --pos: center right; }

.gallery-component--bottom { --pos: bottom center; }
.gallery-component--bottom-left { --pos: bottom left; }
.gallery-component--bottom-right { --pos: bottom right; }

/* class modifier to enable tint */
.gallery-component--tint-enabled .gallery-component__frame::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: linear-gradient(45deg, #000000, rgba(0, 0, 0, 0.4) 20%, rgba(0, 0, 0, 0));
  transition: opacity 250ms;
}
/* class modifier to disable gallery links */
.gallery-component--lightbox-disabled .gallery-component__frame {
  cursor: default;
}

.gallery-component__items {
  --cols: 2;
  --gap: 1rem;
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--cols, 1), 1fr);
  gap: var(--gap);
}

.gallery-component__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--_media---radius);
  aspect-ratio: var(--aspect-ratio);
}
.gallery-component__item:hover .gallery-component__frame {
  transform: scale(1.1);
}
.gallery-component__item:hover .gallery-component__frame::after {
  opacity: 0;
}
.gallery-component__item > .icon {
  position: absolute;
  width: 4em;
  height: 4em;
  color: #eee;
  left: 50%;
  top: 50%;
  pointer-events: none;
  transform: translate3d(-50%, -50%, 0);
  z-index: 1;
}

.gallery-component__frame {
  position: relative;
  display: block;
  cursor: pointer;
  perspective: 1px;
  transform: scale(1);
  transition: transform 250ms;
  width: 100%;
  height: 100%;
}
.gallery-component__frame img {
  position: absolute;
  display: block;
  border: 0;
  margin: 0;
  padding: 0;
  outline: 0;
  width: 100%;
  height: 100%;
  object-fit: var(--fit);
  object-position: var(--pos);
}
.c-video {
  --aspect-ratio: 1;
  --fit: cover;
  --hint: 'Tap To Play/Pause';
  position: relative;
  margin: var(--_pagebuilder---spacer) 0;
}
.c-video--wide {
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;
}

.c-video--fullscreen {
  max-width: 100%;
}

.c-video--square { --aspect-ratio: var(--_media---square); }
.c-video--landscape { --aspect-ratio: var(--_media---landscape); }
.c-video--portrait { --aspect-ratio: var(--_media---portrait); }
.c-video--cinema { --aspect-ratio: var(--_media---cinema); }

.c-video__media {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  aspect-ratio: var(--aspect-ratio);
  overflow: hidden;
  border-radius: var(--_media---radius);
  border: 0;
}
.c-video__media video,
.c-video__media iframe {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: var(--fit);
}
.c-video--is-embed .c-video__media::after {
  z-index: 1;
  content: var(--hint);
  position: absolute;
  bottom: 20px;
  left: 0;
  width: 100%;
  text-align: center;
  text-transform: uppercase;
  font-size: 0.7em;
  font-weight: bold;
  color: #ccc;
  pointer-events: none;
}
.c-video--is-embed .c-video__media::before {
  z-index: 1;
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%,-50%,0);
  pointer-events: none;
  width: 32px;
  height: 32px;
  background-color: #ccc; 
  clip-path: polygon(100% 50%, 0 0, 0 100%);
  transition: 500ms opacity;
  opacity: 1;
}
.c-video--is-embed .c-video__media.is--playing::before {
  width: 12px;
  height: 22px;
  border-left: 4px solid #ccc;
  border-right: 4px solid #ccc;
  clip-path: unset;
  background-color: transparent;
  opacity: .5;
}

:root {
  --table-component-bg-colour: white;
  --table-component-colour-fg: #333333;
  --table-component-border-colour: #c8c8c8;
  --table-component-header-bg-colour: #fafafa;
  --table-component-row-alt-bg-colour: #d2d2d2;
  --table-component-row-highlight-colour: #cff1be;
  --table-component-collection-bg-colour: var(--table-component-header-bg-colour);
}
[data-page-builder] .c-table {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: var(--_layout---gutter);
  margin: auto;
}
.table-component-container {
  position: relative;
  background: var(--table-component-colour-bg);
}
.table-component thead,
.table-component tfoot {
}
.table-component thead th,
.table-component thead th,
.table-component thead td,
.table-component thead td {
}
.table-component caption {
}
.table-component {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0px;
  border: 1px solid var(--table-component-border-colour);
  border-bottom: 0px;
}
.table-component tr {
  background: var(--table-component-colour-bg);
}
.table-component &, 
.table-component th, 
.table-component td {
  border-style: solid;
  border-color: var(--table-component-border-colour);
  border-width: 1px;
}
.table-component th, 
.table-component td {
  padding: 1.25em;
  text-align: left;
  
}
.table-component th {
  text-transform: uppercase;
  color: var(--table-component-colour-fg);
}
.table-component td {
  color: var(--table-component-colour-fg);
}
.table-component h1,
.table-component h2,
.table-component h3,
.table-component h4,
.table-component p {
  margin: 0;
  padding: 0;
  margin-bottom: .25em;
}
.table-component-row-collection {
  background: var(--table-component-collection-bg-colour) !important;
  font-size: 1.65rem;
}
.table-component-row-alternate {
  background: var(--table-component-row-alt-bg-colour) !important;
}
.table-component-row-highlighted {
  background: var(--table-component-row-highlight-colour) !important;
}
.table-component--is-responsive th,
.table-component--is-responsive td {
  display: block;
  border: 0;
  border-bottom: 1px solid var(--table-component-border-colour);
}
@media (min-width:1020px){
  .table-component--is-responsive th,
  .table-component--is-responsive td {
    display: table-cell;
    border-style: solid;
    border-color: var(--table-component-border-colour);
    border-width: 1px;
  }
  /* Table widths only work on larger screens because the table needs to remain responsive */
  .table-component-w10 {
    width: 10%;
  }
  .table-component-w20 {
    width: 20%;
  }
  .table-component-w30 {
    width: 30%;
  }
  .table-component-w40 {
    width: 40%;
  }
  .table-component-w50 {
    width: 50%;
  }
  .table-component-w60 {
    width: 60%;
  }
  .table-component-w70 {
    width: 70%;
  }
  .table-component-w80 {
    width: 80%;
  }
  .table-component-w90 {
    width: 90%;
  }
  .table-component-w100 {
    width: 100%;
  }
}
.c-image {
  --bg: #333;
  --fg: #eee;
  --ratio: initial;
  --fit: cover;
  position: relative;
  box-sizing: border-box;
  display: block;
  margin: var(--_pagebuilder---spacer) 0;
  padding: 0;
  overflow: hidden;
  font-size: 1em;
}

.c-image--cover { --fit: cover; }
.c-image--contain { --fit: contain; }
.c-image--fill { --fit: fill; }
.c-image--square { --ratio: var(--_media---square); }
.c-image--landscape { --ratio: var(--_media---landscape); }
.c-image--portrait { --ratio: var(--_media---portrait); }
.c-image--cinema { --ratio: var(--_media---cinema); }

.c-image__link,
.c-image a {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
}
.c-image__image {
  position: relative;
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  border: 0;
  aspect-ratio: var(--ratio);
  object-fit: var(--fit);
  border-radius: var(--_media---radius);
}
@media (min-width:720px){
  .c-image {
    font-size: 1.25em;
  }
}
@media (min-width:1020px){
  .c-image {
    font-size: 1.5em;
  }
}

.c-callout {
  --bg-color: 238, 238, 238;
  --fg-color: var(--_color---text);
  position: relative;
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  margin: var(--_pagebuilder---spacer) auto;
  color: rgb(var(--fg-color));
  text-align: center;
}
.c-callout blockquote {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
.c-callout__wrap {
  overflow: hidden; 
  padding: 6rem 0;
}
.c-callout__wrap h2,
.c-callout__wrap p {
  margin: 0;
  padding: 0;
}
.c-callout__image {
  position: relative;
  display: inline-block;
  vertical-align: top;
  width: 9em;
  height: 9em;
  background-size: cover;
  background-position: center;
  clip-path: circle(40%);
}
.c-callout__line1 {
  font-size: var(--_typography---text-display-rem);
  font-family: var(--_typography---font-headers);
  text-transform: var(--_typography---headers-case);
  line-height: var(--_typography---line-height-tight);
}
.c-callout__line2 {
  font-size: var(--_typography---text-body-rem);
  font-family: var(--_typography---font-body);
  line-height: var(--_typography---line-height-normal);  
}
.c-callout__line1,
.c-callout__line2  {
  color: inherit;
  word-break: break-word;
}
.c-callout__line2 {
  color: rgba(var(--_color---accent),var(--_color---subtle-opacity));
  text-transform: capitalize;
}
.c-callout__button {
  padding: 1em 0;
}
.c-section {
  position: relative;
  padding: 4rem 0;
  background-color: rgb(var(--_color---background));
  color: rgb(var(--_color---text));
}
.c-section::before {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(45deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0) 50%, transparent);
}
.c-section__wrap {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  margin: auto;
}
.c-section__title {
  font-size: var(--_typography---text-title-rem);
}
.c-section__eyebrow {
  font-size: var(--_typography---text-body-rem);
}
.c-section__title {
  position: relative;
  margin: 0;
  padding: 2em 0;
  line-height: 1.25em;
  text-transform: uppercase;
}
.c-section__eyebrow {
  text-transform: uppercase;
}
.c-section__eyebrow,
.c-section__title {
  padding: 0;
  margin: 0;
  text-align: inherit;
}
.c-section {
  color: inherit;
}
.c-section__secondary-links {
  padding-top: 2em;
}
.c-section__secondary-links ul {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: inside square;
  padding: 1.5rem;
}
.c-section__secondary-links li {
  position: relative;
}
:root {
  --markerPosterComponent-bgColor: #333;
  --markerPosterComponent-fgColor: #eee;
  --markerPosterComponent-bgImage: ;
  --markerPosterComponent-pad: var(--kaos-pad);
  --markerPosterComponent-logoSize1: 254px;
  --markerPosterComponent-logoSize2: 304px;
}
.marker-poster-component {
  background-color: var(--markerPosterComponent-bgColor);
  color: var(--markerPosterComponent-fgcolor);
  background-image: var(--markerPosterComponent-bgImage);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.marker-poster-component__container::after {
  position: absolute;
  content: '';
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: var(--markerPosterComponent-bgColor);
  opacity: .85;
}
.marker-poster-component__marker {
  position: absolute;
  width: 250%;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
}
.marker-poster-component__video {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;  
}
.marker-poster-component__logo {
  position: absolute;
  width: var(--markerPosterComponent-logoSize1);
  height: var(--markerPosterComponent-logoSize1);
  padding: 12px;
  color: var(--markerPosterComponent-fgColor);
  fill: currentcolor;
}
@media (min-width: 768px){
  .marker-poster-component__marker {
    position: absolute;
    width: 100%;
    left: 0px;
    padding: 40px;
  }
  .marker-poster-component__logo {
    width: var(--markerPosterComponent-logoSize2);
    height: var(--markerPosterComponent-logoSize2);
  }
}
.c-hero {
  --hero-component-color: #eee;
  --hero-component-pad: 2.5em;
  --aspect-ratio: 1;
  position: relative;
  overflow: hidden; 
  /* display: none; */
  aspect-ratio: var(--aspect-ratio);
}

/* hero visible when in ready state class modifier... */
.c-hero--is-ready {
  display: block;
}

.c-hero--is-disabled {
  cursor: none;
  pointer-events: none
}
.c-hero__container {
  position: relative;
  width: 100%;
  height: 100%;
}
.c-hero__container::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(0,0,0,1), rgba(0,0,0,0) 100%);
}
.c-hero--is-loaded {
  display: block !important;
}
.c-hero__slide {
  position: absolute;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.c-hero__image,
.c-hero__video,
.c-hero__frame,
.c-hero__absolute {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-hero__video {
  pointer-events: none;
}
.c-hero__image {
  border: 0;
}
.c-hero__frame {
  border: 0;
  pointer-events: none;
}

.c-hero__leader {
  position: relative;
  max-width: var(--_layout---max-width);
  margin: auto;
  height: 100%;
  padding: var(--_layout---gutter);
  font-size: clamp(1.25rem, 3vw, 3rem);
}
.c-hero__leader-wrap {
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: .25em;
  z-index: 1;
  width: 100%;
  height: 100%;  
}
.c-hero__eyebrow,
.c-hero__title,
.c-hero__text {
  margin: 0;
  padding: 0;
  text-decoration: none !important;
  word-break: break-word;
}
.c-hero__eyebrow {
  color: rgb(var(--_color---accent));
  font-family: var(--_typography---font-headers);
  text-transform: var(--_typography---headers-case);
  font-size: 1em;
  font-weight: bold;
  line-height: var(--_typography---line-height-tight);
}
.c-hero__title {
  color: rgb(var(--_color---text));
  line-height: var(--_typography---line-height-tight);
  font-size: 2em;
}
.c-hero__text {
  color: rgba(var(--_color---text),.75);
  line-height: var(--_typography---line-height-normal);
  font-size: 0.75em;
}


/* Hidden visually */
.c-hero__h1 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-hero--hidden {
  display: none;
}
.c-hero--visible {
  display: block;
}

.c-hero--square { --aspect-ratio: var(--_media---square); }
.c-hero--landscape { --aspect-ratio: var(--_media---landscape); }
.c-hero--portrait { --aspect-ratio: var(--_media---portrait); }
.c-hero--cinema { --aspect-ratio: var(--_media---cinema); }

@media (min-width: 800px){
  .c-hero--square-desktop { --aspect-ratio: var(--_media---square); }
  .c-hero--landscape-desktop { --aspect-ratio: var(--_media---landscape); }
  .c-hero--portrait-desktop { --aspect-ratio: var(--_media---portrait); }
  .c-hero--cinema-desktop { --aspect-ratio: var(--_media---cinema); }
  .c-hero__leader-wrap {
    width: 50%;
    justify-content: center;
  }
}
.c-techstack { 
  --cols-mobile: 1;
  --cols-desktop: 3;
  --cols: var(--cols-mobile);
  --gap: clamp(1rem,10vw,2rem);
  --bg-color: #333;
  --text-color: #66cc33;
  --icon-color: #eee;
  --icon-size: 82px;
  text-align: clamp(42px,10vw,82px);
  background-color: rgba(0, 0, 0, 0.5);
  background-size: cover;
  color: var(--text-color);
  padding: 4rem 0;
  text-align: center;
}
.c-techstack a {
  color: inherit;
}
.c-techstack::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  background-color: var(--bg-color);
  background: linear-gradient(43deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4));
}
.c-techstack__wrap {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  margin: auto;
}
.c-techstack__items {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--cols, 1), 1fr);
  gap: var(--gap);
  align-items: start;
}
.c-techstack__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1;
  justify-content: center;
  align-items: center;
}
.c-techstack__item-title,
.c-techstack__item-text,
.c-techstack__disclaimer {
  color: inherit;
  margin: 0;
  padding: 0;
}
.c-techstack__item-title {
  font-size: var(--_typography---text-title-rem);
}
.c-techstack__item-text {
  font-size: var(--_typography---text-body-rem);
}
.c-techstack__item-icon {
  color: var(--icon-color);
  width: var(--icon-size);
  height: var(--icon-size);
  padding: .5rem;
}
.c-techstack__disclaimer {
  font-size: var(--_typography---text-small-rem);
  color: rgba(255,255,255,.5);
  padding-top: 2rem;
}
@media (min-width: 800px){
  .c-techstack {
    --cols: var(--cols-desktop);
  }
}
.c-notify {
  --bg: 0,0,0;
  --fg: 238, 238, 238;
  position: relative;
  display: none;
  background-color: rgb(var(--bg));
  padding: 1rem 0;
}
.c-notify__container {
  position: relative;
  max-width: var(--_layout---max-width);
  padding: 0 var(--_layout---gutter);
  margin: auto;
}
.c-notify__layout {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}
.c-notify__message {
  flex: 1;
  padding: 0;
  margin: 0;
  font-size: 1em;
  font-weight: bold;
  color: rgb(var(--fg)) !important;
  text-decoration: none;
}
.c-notify__message a {
  color: inherit;
}

.c-notify__close-button {
  position: relative;
  padding: 0;
  margin: 0;
  -webkit-appearance: none;
  width: 1.5em;
  height: 1.5em;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.c-notify__close-button::before,
.c-notify__close-button::after {
  position: absolute;
  content: "";
  width: 16px;
  left: 0;
  top: 50%;
  height: 2px;
  background-color: rgb(var(--fg));
}
.c-notify__close-button::before {
  transform: rotate(45deg);
}
.c-notify__close-button::after {
  transform: rotate(-45deg);
}

.c-notify--is-visible {
  display: block;
  visibility: visible;
  opacity: 1;
}
@media (min-width:800px) {
}
