:root {
  
  /* Measurements */
  --padding: 30px;
  --padding-small: calc(var(--padding) / 2);
  
  --width-full: 100%;
  --width-wide: 90rem;
  --width-mid: 50rem;
  
  /* Typography */
  /* Typography -- Fonts */
  --font-header: "Source Serif 4", serif;
  --font-body: "Source Sans 3", sans-serif;
  
  /* Typography -- Sizes */
  --type-body: 16px;
  --type-body-large: 18px;
  --type-body-title: 21px;
  --type-intro: 26px;
  --type-large: 32px;
  --type-header: 48px;
  --type-hero: 56px;
  
  /* Colours */
  --color-white: rgb(255, 255, 255);
  --color-black: rgb(0, 0, 0);
  --color-dark: rgb(37, 68, 91);
  --color-background: rgb(247, 247, 247);
  
  /* colours -- brand palette */
  --color-pink: rgb(241, 165, 187);
  --color-magenta: rgb(232, 82, 132);
  --color-orange: rgb(250, 192, 72);
  --color-yellow: rgb(236, 230, 106);
  --color-green: rgb(116, 185, 107);
  --color-blue: rgb(56, 99, 168);
  --color-purple: rgb(132, 116, 177);
  
  /* New colours */
  --color-light-blue: rgba(113, 164, 205, 1);
  --color-teal: rgba(32, 170, 154, 1);
  
  /* colours -- brand palette -- tints & shades */
  --color-orange-tint: rgb(250, 200, 97);
  --color-orange-shade: rgb(237, 182, 69);
  --color-background-tint: rgba(247, 247, 247, .5);
  --color-dark-tint: rgba(37, 68, 91, .5);
  --color-dark-shade: rgba(14, 29, 40, 1);
  
  /* colours -- glass */
  --color-white-glass: rgba(255,255,255,0.5);
  --color-black-glass: rgba(0,0,0,0.3);
  
  --color-orange-glass: rgba(250, 192, 72, .3);
  --color-orange-glass-lite: rgba(250, 192, 72, .1);
  --color-orange-glass--mid: rgba(250, 192, 72, .6);

  --color-blue-glass: rgba(56, 99, 168, .3);
  --color-blue-glass-lite: rgba(56, 99, 168, .1);
  --color-blue-glass--mid: rgba(56, 99, 168, .6);

  /* links */
  --color-link-default: var(--color-blue);

  /* Gradients */
  --gradient-radial--orange-blue: radial-gradient(86.25% 85.97% at 78.74% 11.75%, rgba(250, 192, 72, .4) 0%, rgba(250, 192, 72, 0.00) 100%), 
    radial-gradient(111.64% 96.6% at 10.05% 0%, rgba(56, 99, 168, .3) 0%, rgba(56, 99, 168, 0.00) 100%);

  --gradient-radial--orange-blue-red: radial-gradient(18.12% 28.9% at 65.15% 50.08%, rgba(56, 99, 168, .2) 0%, rgba(56, 99, 168, 0.00) 100%), 
    radial-gradient(23.15% 42.07% at 31.65% 46.58%, rgba(250, 192, 72, .3) 0%, rgba(250, 192, 72, 0.15) 0%, rgba(250, 192, 72, 0.00) 72.31%), 
    radial-gradient(16.97% 31.5% at 51.22% 56.69%, rgba(232, 82, 132, .2) 0%, rgba(232, 82, 132, 0.15) 0%, rgba(232, 82, 132, 0.00) 72.31%);

  --gradient-radial--teal-blue: radial-gradient(86.25% 85.97% at 78.74% 11.75%, rgba(32, 170, 154, 1) 0%, rgba(32, 170, 154, 0.00) 100%), 
    radial-gradient(111.64% 96.6% at 10.05% 0%, rgba(113, 164, 205, 1) 0%, rgba(113, 164, 205, 0.00) 100%);

  /* Shadows */
  --shadow-flat: 0px 0px 0px 0px rgba(0, 0, 0, 0);
  --shadow-bump: 0px 2px 6px 0px rgba(0, 0, 0, 0.05);
  --shadow-raised: 0px 2px 12px 0px rgba(0, 0, 0, 0.10);
  
  --shadow-float: 0px 4px 12px 0px rgba(0, 0, 0, 0.40);
  --shadow-float-lite: 0px 4px 12px 0px rgba(0, 0, 0, 0.20);
  
  --shadow-button: 0px 1px 4px 0px rgba(0, 0, 0, 0.25);
  --shadow-button-hover: 0px 1px 4px 0px rgba(0, 0, 0, 0.4);
  
  /* corners */
  --corner-rad: 15px;
  --corner-rad-small: 5px;

  /* borders */
  --border: 1px solid rgb(255, 255, 255);
  --border-grey: 1px solid rgba(0,0,0,0.1);
  
  /* transitions */
  --transition-default: all 0.2s ease-in-out;
}


/* CSS variables */

:root {
  --column-gap: 0%;
  --column-width-multiplier: 8.333;
}

/* Mobile layout */

.row-fluid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}


  .row-fluid .span1,
  .row-fluid .span2,
  .row-fluid .span3,
  .row-fluid .span4,
  .row-fluid .span5,
  .row-fluid .span6,
  .row-fluid .span7,
  .row-fluid .span8,
  .row-fluid .span9,
  .row-fluid .span10,
  .row-fluid .span11,
  .row-fluid .span12{
  min-height: 1px;
  width: 100%;
}

/* Desktop layout */

@media (min-width: 768px) {
  .row-fluid {
    flex-wrap: nowrap;
    justify-content: space-between;
  }

  
    .row-fluid .span1 {
      width: calc(var(--column-width-multiplier) * 1% * 1 - var(--column-gap) * (11 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span2 {
      width: calc(var(--column-width-multiplier) * 1% * 2 - var(--column-gap) * (10 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span3 {
      width: calc(var(--column-width-multiplier) * 1% * 3 - var(--column-gap) * (9 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span4 {
      width: calc(var(--column-width-multiplier) * 1% * 4 - var(--column-gap) * (8 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span5 {
      width: calc(var(--column-width-multiplier) * 1% * 5 - var(--column-gap) * (7 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span6 {
      width: calc(var(--column-width-multiplier) * 1% * 6 - var(--column-gap) * (6 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span7 {
      width: calc(var(--column-width-multiplier) * 1% * 7 - var(--column-gap) * (5 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span8 {
      width: calc(var(--column-width-multiplier) * 1% * 8 - var(--column-gap) * (4 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span9 {
      width: calc(var(--column-width-multiplier) * 1% * 9 - var(--column-gap) * (3 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span10 {
      width: calc(var(--column-width-multiplier) * 1% * 10 - var(--column-gap) * (2 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span11 {
      width: calc(var(--column-width-multiplier) * 1% * 11 - var(--column-gap) * (1 * var(--column-width-multiplier) / 100));
    }
  
}

/* Setup */

*, 
html {
  box-sizing: border-box;
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
ol {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

body {
  padding: 0;
  margin: 0;
  position: relative;
  color: var(--color-dark);
  background: var(--color-background);
}

/* Layout */

/* Layout -- Blocks */
.blockmodule {
  padding-top: var(--padding);
  padding-inline: clamp(.5rem, 2vw, 1rem);
  padding-bottom: var(--padding);
}

.blockmodule > * {
  margin-inline: auto;
  max-inline-size: var(--width-wide);
}

/* Layout -- Rows (Flex) */
.row {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  gap: var(--padding-small);
  justify-content: center;
}


.row--col {
  flex-direction: column;
}

.row + .row {
  margin-top: var(--padding);
}

.row > * {
  flex: 1 1 0px;
  min-width: 18.75rem;
}

.row--mid {
  max-width: var(--width-mid);
  margin: 0 auto;
}

.row--1 > * {
  width: calc((100% - var(--padding-small)));
  flex-basis: calc((100% - var(--padding-small)));
  max-width: calc((100% - var(--padding-small)));
}

.row--2 > * {
  width: calc((100% - var(--padding-small)) / 2);
  max-width: calc((100% - var(--padding-small)) / 2);
  flex-basis: calc((100% - var(--padding-small)) / 2);
}

.row--3 > * {
  width: calc((100% - 2 * var(--padding-small)) / 3);
  max-width: calc((100% - 2 * var(--padding-small)) / 3);
  flex-basis: calc((100% - 2 * var(--padding-small)) / 3);
}

.row--4 > * {
  width: calc((100% - 3 * var(--padding-small)) / 4);
  max-width: calc((100% - 3 * var(--padding-small)) / 4);
  flex-basis: calc((100% - 3 * var(--padding-small)) / 4);
}

.row--5 > * {
  width: calc((100% - 4 * var(--padding-small)) / 5);
  max-width: calc((100% - 4 * var(--padding-small)) / 5);
  flex-basis: calc((100% - 4 * var(--padding-small)) / 5);
}

.row--6 > * {
  width: calc((100% - 5 * var(--padding-small)) / 6);
  max-width: calc((100% - 5 * var(--padding-small)) / 6);
  flex-basis: calc((100% - 5 * var(--padding-small)) / 6);
}

@media screen and (min-width: 700px) {  
  .row {
    gap: var(--padding);
    flex-direction: row;
  }

  .row--1 > * {
    flex-basis: calc((100% - var(--padding)));
  }

  .row--2 > * {
    flex-basis: calc((100% - var(--padding)) / 2);
  }

  .row--3 > * {
    flex-basis: calc((100% - 2 * var(--padding)) / 3);
  }

  .row--4 > * {
    flex-basis: calc((100% - 3 * var(--padding)) / 4);
  }

  .row--5 > * {
    flex-basis: calc((100% - 4 * var(--padding)) / 5);
  }

  .row--6 > * {
    flex-basis: calc((100% - 5 * var(--padding)) / 6);
  }
}

/* Typography */

body {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
}

/* Typography -- Headings & Titles */

h1,
.visual-h1,
h2,
.visual-h2 {
  font-family: var(--font-header);
  font-weight: 400;
  line-height: 1.15;
  text-wrap: balance;
  margin: 0 0 var(--padding) 0;
}

h1,
.visual-h1 {
  font-size: var(--type-large);
  margin-bottom: .6rem;
}

h2,
.visual-h2 {
  font-size: var(--type-intro);
}

h3,
.visual-h3,
.light-h3 {
  font-family: var(--font-body);
  font-size: var(--type-body-large);
  font-weight: 600;
}

.light-h3 {
  font-weight: 400;
}

h4,
.visual-h4,
h5, 
h6 {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
  font-weight: 600;
}

@media screen and (min-width: 900px) {
  h1,
  .visual-h1 {
    font-size: var(--type-header);
    margin-bottom: .6rem;
  }

  h2,
  .visual-h2 {
    font-size: var(--type-header);
  }

  h3,
  .visual-h3,
  .light-h3 {
    font-size: var(--type-body-title);
  }
  
  .intro {
    font-size: var(--type-intro);
  }
}

@media screen and (min-width: 1500px) {
  h1,
  .visual-h1 {
    font-size: var(--type-hero);
  }
}

/* Typography -- Eyebrow */

.header:has(> .eyebrow) {
  display: flex;
  flex-direction: column;
}

h1:has(+ .eyebrow), 
h2:has(+ .eyebrow), 
h3:has(+ .eyebrow) {
  order: 2;
  margin-top: 0;
}

.eyebrow {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
  font-weight: 400;
  opacity: .4;
  margin: 0 0 var(--padding-small) 0;
}

/* Typography -- Paragraphs */

.intro {
  font-size: var(--type-body-large);
  font-weight: 300;
  line-height: 1.3;
  -webkit-font-smoothing: antialiased;
  margin-bottom: var(--padding);
}

.para {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
  font-weight: 400;
}

/* Styled content */

.styled-content {
  margin-bottom: var(--padding);
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
  font-weight: 400;
}

.styled-content:last-of-type {
  margin-bottom: 0;
}

.styled-content p {
  font-family: var(--font-body);
  font-size: var(--type-body);
  line-height: 1.4;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 1.4em;
}

.styled-content p:last-of-type {
  margin-bottom: 0;
}

.styled-content a {
  text-decoration: underline;
  text-decoration-color: var(--color-dark-tint);
  transition: var(--transition-default);
}

.styled-content a:hover {
  color: var(--color-black);
  text-decoration-color: var(--color-dark);
}

.styled-content ul {
  list-style-type: disc;   /* default for UL */
  margin-left: 1.5rem;     /* adjust as needed */
  padding-left: 1.5rem;    /* spacing for bullets */
}

.styled-content ol {
  list-style-type: decimal; /* default for OL */
  margin-left: 1.5rem;
  padding-left: 1.5rem;
}

.styled-content ul ul,
.styled-content ol ul {
  list-style-type: circle; /* nested ULs */
}

.styled-content ul ol,
.styled-content ol ol {
  list-style-type: lower-alpha; /* nested OLs */
}

.styled-content ul,
.styled-content ol {
  list-style-position: outside; /* keeps markers outside the text block */
  margin: 0 0 1rem 1.5rem;      /* adds consistent left margin */
  padding-left: 0;              /* prevents double indentation */
}

.styled-content li {
  text-indent: 0;               /* ensure text aligns properly */
}

.styled-content ul li::marker,
.styled-content ol li::marker {
  color: var(--color-teal);
}

@media screen and (min-width: 900px) {
  .intro {
    font-size: var(--type-intro);
  }
}

/* Elements */

/* Cards */

.card {
  background-color: var(--color-white);
  border: var(--border);
  border-radius: var(--corner-rad);
  box-shadow: var(--shadow-flat);
  width: 100%;
}

a.card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.card--vertical {
  display: flex;
  flex-direction: column;
}

/* Card -- Colours/textures */

.card--glass {
  background: var(--color-white-glass);
}

.card--orange {
  background: var(--color-orange);
  border-color: var(--color-orange);
}

.card--blue {
  background: var(--color-blue);
  border-color: var(--color-blue);
  color: white; /* Contrast */
}

/* Card -- Shadows */

.card--bump { /* slightly raised */
  box-shadow: var(--shadow-bump);
}

.card--raised { /* raised with a clear shadow */
  box-shadow: var(--shadow-raised);
}

.card--float { /* Floating  with a clear shadow */
  box-shadow: var(--shadow-float);
}

/* No shadow for unstyled cards! */
.card--unstyled.card--bump,
.card--unstyled.card--raised,
.card--unstyled.card--float {
  box-shadow: none;
}

/* Card -- Interactions */

a.card {
  transition: all .3s ease-in-out;
}

a:hover.card {
  box-shadow: var(--shadow-float);
}

/* Card -- -- contents */

/* Card -- -- contents -- Background Images */

.card--bg-img {
  position: relative;
  margin: var(--padding) 0;
  overflow: hidden;
  padding-top: var(--padding);
  padding-bottom: var(--padding);
}

.card--bg-img::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('images/bg-image.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.1;
  z-index: 1;
}

.card--bg-img > div {
  position: relative;
  z-index: 2;
}

/* Card -- -- contents -- Video */

.card--video {
  display: flex;
}

.card--video .card__text {
  width: 25%;
}

.card--video .card__video {
  display: block;
  width: 75%;
  height: auto;
  aspect-ratio: 16/9;
  padding: var(--padding);
  padding-left: 0;
}

.card--video:hover  .card__video iframe {
  transform: scale(1.05);
  box-shadow: var(--shadow-float);
  
}

.card--video .card__video iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  border-radius: var(--corner-rad-small);
  box-shadow: var(--shadow-raised);
  transition: transform 0.2s ease;
}

@media screen and (max-width: 900px) {
  .card--video {
    flex-direction: column;
  }
  
  .card--video .card__text {
    width: 100%;
    text-align: center;
    padding-bottom: 0;
  }
  
  .card--video .card__video {
    width: 100%;
    padding: var(--padding);
    padding: top: 0;
  }
}

.card__image {
  width: calc(100% + 2px); /* account for card border */
  margin: -1px; /* account for card border */
  aspect-ratio: 1/1;
  border-radius: var(--corner-rad);
  overflow: hidden;
} 

.card__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.card:not(.card--unstyled, .card--text-overlap) .card__image:has( + .card__text) {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.card__image--logo {
  aspect-ratio: 2/1;
}

.card__image--logo img {
  padding: calc(var(--padding) / 2);
  aspect-ratio: 2/1;
  object-fit: contain;
}

a:hover .card__image img {
  transform: scale(1.05);
}

.card__image--show-full img {
  object-fit: contain;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}

.card__icon {
  width: 100%;
  padding: var(--padding);
  padding-bottom: 0;
  margin-bottom: 0;
  text-align: center;
}

.card__icon img {
  max-width: calc(2rem + (2 * var(--padding)));
  max-height: calc(2rem + var(--padding));
}

.card--text-overlap {
  position: relative;
  overflow: none;
}

.card--text-overlap .card__text {
  position: absolute;
  color: white;
  bottom: -1px;
  left: -1px;
  right: -1px;
  padding-top: calc(var(--padding) * 3);
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 80%);
  border-bottom-left-radius: var(--corner-rad);
  border-bottom-right-radius: var(--corner-rad);
}

.card__text {
  padding: var(--padding);
}

.card__text--space-between {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
}

.card__text > *:first-child {
  margin-top: 0;
}

.card--text-overlap h3 {
  margin-bottom: 0;
}

.card--text-overlap .para {
  margin-top: 0;
}

.card--unstyled {
  background-color: transparent;
  border: none;
}

.card--unstyled .card__text {
  padding: 0;
}

.card--unstyled .card__image {
  width: 100%;
  margin: 0;
  margin-bottom: var(--padding);
}

.card--wide {
  display: flex;
  flex-direction: row;
  gap: var(--padding);
  overflow: hidden;
}

.card--wide .card__image,
.card--wide .card__text {
  flex: 1 1 auto;
  width: calc(50% - var(--padding));
}

.card--wide .card__image {
  border-radius: 0;
  aspect-ratio: auto;
}

.card--wide .card__image img {
  aspect-ratio: auto;
}

.card--wide .card__text {
  padding-right: 0;
}

.card--order-reverse.card--wide .card__text {
  padding-left: 0;
  padding-right: var(--padding);
}

.card--unstyled.card--wide .card__image {
  border-radius: var(--corner-rad);
}

.card--order-reverse .card__text {
  order: 2;
}

.card--order-reverse .card__image {
  order: 1;
}

.card__text > *:last-child {
  margin-bottom: 0;
}

.card {
  container-type: inline-size;
}

@container (width < 500px) {
  .card {
    display: flex;
    flex-direction: row;
  }
}

/* Video */

.card__video--wrapper {
  position: relative;
  height: auto;
  aspect-ratio: 16/9;
}

.card__video--wrapper:hover iframe {
  transform: scale(1.05);
}

.card__video--wrapper iframe {
  border-radius: var(--corner-rad-small);
  box-shadow: var(--shadow-float);
  z-index: 2;
  transition: transform 0.4s ease;
}

.card--hero .card__video--wrapper::before {
  content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzkwIiBoZWlnaHQ9IjQ3NCIgdmlld0JveD0iMCAwIDc5MCA0NzQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik02NTAuMjk5IDI5NC4wNDhINTA5LjQ3MVYxNTQuMzQ3QzU4Ny4yNDkgMTU0LjM0NyA2NTAuMjk5IDIxNi44OTMgNjUwLjI5OSAyOTQuMDQ4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTY4OS43MzEgNDMzLjc0OUM2MTIuNTc1IDQzMy43NDkgNTUwLjAzIDM3MS4yMDQgNTUwLjAzIDI5NC4wNDhINjg5LjczMVY0MzMuNzQ5WiIgZmlsbD0iIzM4NjNBOCIvPgo8cGF0aCBkPSJNNTA5LjQ3MSAyOTQuMDQ4SDM2OS43N0MzNjkuNzcgMjE2Ljg5MyA0MzIuMzE2IDE1NC4zNDcgNTA5LjQ3MSAxNTQuMzQ3VjI5NC4wNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzY5Ljc3IDQwMi4yMDRIMjMwLjA2OUMyMzAuMDY5IDMyNS4wNDkgMjkyLjYxNSAyNjIuNTAzIDM2OS43NyAyNjIuNTAzVjQwMi4yMDRaIiBmaWxsPSIjRUNFNjZBIi8+CjxwYXRoIGQ9Ik0zMTQuNTY1IDEzOS43MDFIMTc0Ljg2NEMxNzQuODY0IDYyLjU0NTkgMjM3LjQxIDAgMzE0LjU2NSAwVjEzOS43MDFaIiBmaWxsPSIjNzRCOTZCIi8+CjxwYXRoIGQ9Ik01NTAuMDMgMTU0LjM0N1YxMy41MTk1SDY4OS43MzFDNjg5LjczMSA5MS4yOTcgNjI3LjE4NSAxNTQuMzQ3IDU1MC4wMyAxNTQuMzQ3WiIgZmlsbD0iIzg0NzRCMSIvPgo8cGF0aCBkPSJNMC4yMzgwMzcgMjgwLjUyOUgxMzkuOTM5VjE0MC44MjhDNjIuNzgzOSAxNDAuODI4IDAuMjM4MDM3IDIwMy4zNzQgMC4yMzgwMzcgMjgwLjUyOVoiIGZpbGw9IiNGQUMwNDgiLz4KPHBhdGggZD0iTTg5LjI0MSAyODAuNTI5Qzg5LjI0MSAzNTcuNjg0IDE1MS43ODcgNDIwLjIzIDIyOC45NDIgNDIwLjIzVjI4MC41MjlIODkuMjQxWiIgZmlsbD0iI0U4NTI4NCIvPgo8cGF0aCBkPSJNNDM5LjYyMSA0NzMuMTgxQzQwMS4wNDUgNDczLjE4MSAzNjkuNzcgNDQxLjkwOCAzNjkuNzcgNDAzLjMzNkMzNjkuNzcgMzY0Ljc2MyA0MDEuMDQ1IDMzMy40OCA0MzkuNjIxIDMzMy40OEM0NzguMTk2IDMzMy40OCA1MDkuNDcxIDM2NC43NTMgNTA5LjQ3MSA0MDMuMzI2QzUwOS40NzEgNDQxLjg5OCA0NzguMTk2IDQ3My4xNzEgNDM5LjYyMSA0NzMuMTcxTTQzOS43OCDDpTQzNC40OTlDNDU4LjA0MSA0MzQuNDk5IDQ3Mi44NSA0MTkuNjkgNDcyLjg1IDQwMS40MzFDNDcyLjg1IDM4My4xNzIgNDU4LjA0MSAzNjguMzYzIDQzOS43OCAzNjguMzYzQzQyMS41MiAzNjguMzYzIDQwNi43MSAzODMuMTcyIDQwNi43MSA0MDEuNDMxQzQwNi43MSA0MTkuNjkgNDIxLjUyIDQzNC40OTkgNDM5Ljc4IDQzNC40OTlaIiBmaWxsPSIjNzRCOTZCIi8+CjxwYXRoIGQ9Ik0yNjQuNDMxIDI4MC41MjlDMjI1LjU0NCAyODAuNTI5IDE5NC4wMTcgMjQ5LjI1NCAxOTQuMDE3IDIxMC42NzhDMTk0LjAxNyAxNzIuMTAzIDIyNS41NDQgMTQwLjgyOCAyNjQuNDMxIDE0MC44MjhDMzAzLjMxNyAxNDAuODI4IDMzNC44NDUgMTcyLjEwMyAzMzQuODQ1IDIxMC42NzhDMzM0Ljg0NSAyNDkuMjU0IDMwMy4zMTcgMjgwLjUyOSAyNjQuNDMxIDI4MC41MjlaTTI2NS40NzcgMjM4LjIxNEMyODIuMTQ1IDIzOC4yMTQgMjk1LjY1NyAyMjQuODEgMjk1LjY1NyAyMDguMjc1QzI5NS42NTcgMTkxLjc0IDI4Mi4xNDUgMTc4LjMzNiAyNjUuNDc3IDE3OC4zMzZDMjQ4LjgwOCAxNzguMzM2IDIzNS4yOTYgMTkxLjc0IDIzNS4yOTYgMjA4LjI3NUMyMzUuMjk2IDIyNC44MSAyNDguODA4IDIzOC4yMTQgMjY1LjQ3NyAyMzguMjE0WiIgZmlsbD0iI0YxQTVCQiIvPgo8cGF0aCBkPSJNNzIwLjE0OSAyOTQuMDQ4QzY4MS41NzQgMjk0LjA0OCA2NTAuMjk5IDI2Mi43NzMgNjUwLjI5OSAyMjQuMTk4QzY1MC4yOTkgMTg1LjYyMiA2ODEuNTc0IDE1NC4zNDcgNzIwLjE0OSAxNTQuMzQ3Qzc1OC43MjUgMTU0LjM0NyA3OTAgMTg1LjYyMiA3OTAgMjI0LjE5OEM3OTAgMjYyLjc3MyA3NTguNzI1IDI5NC4wNDggNzIwLjE0OSAyOTQuMDQ4Wk03MTkuNjIxIDI1My41ODhDNzM2LjE1NiAyNTMuNTg4IDc0OS41NiAyNDAuMTg0IDc0OS41NiAyMjMuNjQ5Qzc0OS41NiAyMDcuMTE0IDczNi4xNTYgMTkzLjcxIDcxOS42MjEgMTkzLjcxQzcwMy4wODYgMTkzLjcxIDY4OS42ODIgMjA3LjExNCA2ODkuNjgyIDIyMy42NDlDNjg5LjY4MiAyNDAuMTg0IDcwMy4wODYgMjUzLjU4OCA3MTkuNjIxIDI1My41ODhaIiBmaWxsPSIjRkFDMDQ4Ii8+Cjwvc3ZnPgo=");
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  opacity: 0.5;
  filter: blur(25px);
  z-index: 1;  
}

/* buttons & links */

.button-wrapper {
  display: block;
  padding-top: var(--padding);
}

.button-wrapper--multi {
  display: flex;
  flex-direction: row;
  gap: var(--padding);
  flex-wrap: wrap;
}

.center-text .button-wrapper--multi {
  justify-content: center;
}

.button,
.hs-button {
  text-decoration: none;
  color: inherit;
  border-radius: 30px;
  border: 1px solid rgba(0, 0, 0, 0.30);
  background: var(--color-white-glass);
  box-shadow: var(--shadow-button);
  padding: .6rem 1.2rem;
  transition: var(--transition-default);
}

.button:hover,
.hs-button:hover {
  background: var(--color-white);
  box-shadow: var(--shadow-button-hover);
  transform: scale(1.02);
}

.button:active,
.hs-button:active {
  border: 1px solid rgba(0, 0, 0, 0.0);
  box-shadow: var(--shadow-flat);
}

.button--orange {
  background: var(--color-orange);
}

.button--orange:hover {
  background: var(--color-orange-tint);
}

.button--arrow-link {
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: .6rem 0;
  color: var(--color-blue);
}

.button--arrow-link:hover {
  background: transparent;
  box-shadow: none;
  transform: none;
  text-decoration: underline;
  text-decoration-color: inherit;
}

.button--arrow-link span {
  padding-right: .5rem;
  transition: var(--transition-default);
}

.button--arrow-link:hover span {
  padding-right: 1rem;
}

/* Gradients */

.hero-gradient {
  background: var(--gradient-radial--teal-blue);
}

/* For an empty hero */
.section-hero > .container-fluid > .row-fluid-wrapper > .row-fluid > .widget-span:not(:has(> .row-fluid-wrapper)),
.section-hero--empty {
  display: block;
  height: calc(8rem + (var(--padding) * 3.5));
}

@media screen and (max-width: 1100px) {
  .section-hero > .container-fluid > .row-fluid-wrapper > .row-fluid > .widget-span:not(:has(> .row-fluid-wrapper)),
  .section-hero--empty {
    height: calc(4rem + (var(--padding) * 3));
  }
}

.bg-gradient-01 {
  background: var(--gradient-radial--orange-blue-red);
}

.header--section {
  max-width: var(--width-mid);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.header--section h2 {
  margin-bottom: 0;
}

.cell__columns {
  display: flex;
  gap: var(--padding);
  padding-top: calc(var(--padding) * 2);
}

.cell__columns a {
  text-decoration: none;
  color: inherit;
  position: relative;
  transition: all 0.2s ease;
}

.cell__columns .find-out {
  color: var(--color-orange);
}

.cell__columns div {
  border-right: 1px solid rgba(255,255,255,0.3);
}

.cell__columns div:last-of-type {
  border-right: none;
}

.cell__columns a {
  display: block;
  margin: -1rem;
  margin-right: 1rem;
  padding: 1rem;
  border: 1px solid transparent;
  border-radius: var(--corner-rad-small);
}

.cell__columns a:hover {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.2);
}

.cell__columns div:last-of-type a {
  margin-right: 0;
}

/* Helpers */

.center-text {
  text-align: center;
}

/* Animations */
.row--animate .card {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: transform, opacity;
}

.row--animate .card.animate-in {
  opacity: 1;
  transform: translateY(0);
}

/* Underlined sections */

.blockmodule__underline {
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.blockmodule__underline + * {
  padding-top: calc(2 * var(--padding));
}

/* Checked item */

.icon-add__checked {
  padding-left: 1.45rem;
  position: relative;
}

.icon-add__checked::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5he2ZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2U6Izc0Yjk2YjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjEuNXB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+Y2hlY2stY2lyY2xlLTE8L3RpdGxlPjxwYXRoIGNsYXNzPSJhIiBkPSJNNiwxMy4yMjMsOC40NSwxNi43YTEuMDQ5LDEuMDQ5LDAsMCwwLDEuNzA3LjA1MUwxOCw2LjgyOCIvPjxjaXJjbGUgY2xhc3M9ImEiIGN4PSIxMiIgY3k9IjExLjk5OSIgcj0iMTEuMjUiLz48L3N2Zz4=");
  width: 1.1rem;
  height: 1.1rem;
}

/* article previews */

.card__article-preview {
  position: relative;
  transition: var(--transition-default);
}

.card__article-preview .article-preview__heading-logo {
  position: absolute;
  width: 4rem;
  height: 4rem;
  background-color: var(--color-white);
  border-radius: var(--corner-rad);
  overflow: hidden;
  top: var(--padding-small);
  left: var(--padding-small);
  display: flex;
  flex-direction: row;
  justify-content: center;
}

.card__article-preview .article-preview__heading-logo img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1/1;
  object-fit: contain;
}

.card__article-preview .article-preview__heading {
  font-weight: 400;
}

/* Case studies */
.post-type_article  .section-hero,
.post-type_case-study .section-hero,
.post-type_careers .section-hero {
  padding-top: calc(6rem + (var(--padding) * 3.5));
}

@media screen and (max-width: 1100px) {
  .post-type_article  .section-hero,
  .post-type_case-study .section-hero,
  .post-type_careers .section-hero {
    padding-top: calc(2rem + (var(--padding) * 3));
  }
}

.casestudysingle__introblock {
  flex: 1 1 auto;
  overflow: hidden;
  border-radius: var(--corner-rad);
  background: var(--color-white);
  box-shadow: var(--shadow-bump);
}

.case-study_featured-image {
  width: 100%;
  display: block;
  aspect-ratio: 2/1;
  overflow: hidden;
}

.case-study_featured-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2/1;
  object-fit: cover;
}

.casestudysingle__introinfo {
  padding: var(--padding);
  display: flex;
  flex-direction: row;
  gap: var(--padding);
}

.casestudysingle__introinfo .introinfo_logo {
  border-radius: var(--corner-rad-small);
  overflow: hidden;
  width: 8rem;
  aspect-ratio: 1/1;
  display: block;
}

.casestudysingle__introinfo .introinfo_logo img {
  width: 8rem;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: contain;
  display: block;
}

.casestudysingle__introinfo .introinfo_info {
  display: flex;
  flex-direction: column;
  justify-content: center;  
}

.articlesingle__main,
.casestudysingle__main,
.careerssingle__main {
  padding-inline: clamp(.5rem, 2vw, 1rem);
}

.articlesingle__main > *,
.casestudysingle__main > *,
.careerssingle__main > * {
  display: block;
  margin-inline: auto;
  max-inline-size: var(--width-mid);
}

.articlesingle__intro {
  border-top: var(--border-grey);
  border-bottom: var(--border-grey);
  margin-bottom: var(--padding-small);
  padding-top: var(--padding-small);
  padding-bottom: var(--padding-small);
  text-align: center;
}

.blog-button-group {
  border-top: var(--border-grey);
  margin-top: var(--padding);
  padding-top: var(--padding);
  padding-bottom: var(--padding);
}

/* forms */
.localeformelement form fieldset {
  max-width: var(--width-mid);
}

.localeformelement form .hs-form-field {
  display: block;
  margin-bottom: 1.6rem;
  max-width: var(--width-mid);
}
.localeformelement form label {
  margin: 0 0 var(--padding-small);
  color: #464444;
}
.localeformelement form label.hs-error-msg {
  color: var(--color-magenta);
  font-weight: bold;
}
.localeformelement form input:not([type="submit"]),
.localeformelement form textarea {
  font-size: var(--type-body);
  background: #dbdbdbff;
  border: 0;
  padding: 1rem .75rem;
  width: 100%;
}
.localeformelement form input:focus {
  border: 0;
  outline: 0;
}

.localeformelement form select {
  /* styling */
  background-color: white;
  width: 100%;
  border: 1px solid #dcd2d2;
  border-radius: 0px;
  display: inline-block;
  font: inherit;
  line-height: 1.5em;
  padding: 0.5em 3.5em 0.5em 1em;

  /* reset */
  margin: 0;      
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
}


.localeformelement form select {
  background-image:
    linear-gradient(45deg, transparent 50%, #f1c25f 50%),
    linear-gradient(135deg, #f1c25f 50%, transparent 50%),
    linear-gradient(to right, #ededed, #ededed);
  background-position:
    calc(100% - 20px) calc(1em + 2px),
    calc(100% - 15px) calc(1em + 2px),
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
}

.localeformelement form select:focus {
  background-image:
    linear-gradient(45deg, white 50%, transparent 50%),
    linear-gradient(135deg, transparent 50%, white 50%),
    linear-gradient(to right, #f1c25f, #f1c25f);
  background-position:
    calc(100% - 15px) 1em,
    calc(100% - 20px) 1em,
    100% 0;
  background-size:
    5px 5px,
    5px 5px,
    2.5em 2.5em;
  background-repeat: no-repeat;
  border-color: #f1c25f;
  outline: 0;
}
.localeformelement form .hs-submit {
  text-align: center;
}
.localeformelement form .hs-submit input[type=submit] {
  margin: 0 auto;
  display: inline-block;
  text-decoration: none;
  cursor: pointer;
  color: inherit;
  border-radius: 30px;
  border: 1px solid rgba(0, 0, 0, 0.30);
  background: var(--color-orange);
  box-shadow: var(--shadow-button);
  padding: .6rem 1.2rem;
  transition: var(--transition-default);
}

.localeformelement form .hs-submit input[type=submit]:hover {
  background: var(--color-orange-tint);
  box-shadow: var(--shadow-button-hover);
  transform: scale(1.02);
}

.localeformelement form .hs-submit input[type=submit]:active {
  border: 1px solid rgba(0, 0, 0, 0.0);
  box-shadow: var(--shadow-flat);
}

.localeformelement form .hs-fieldtype-booleancheckbox ul {
  list-style-type: none;
  padding: 0;
}

.localeformelement form .hs-fieldtype-booleancheckbox label {
  font-size: var(--text-regular);
}

.localeformelement form .hs-fieldtype-booleancheckbox label input {
  display: inline-block;
  width: auto;
  margin-right: var(--padding-small);
}

.localeformelement form .legal-consent-container {
  padding-bottom: var(--padding);
}

.localeformelement .hs-error-msgs {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 55rem) {
  .localeformelement form .hs-submit {
    width: 100%;
  }
  .localeformelement form label {
    font-size: var(--type-body-large);
  }
  .localeformelement form input {
  }
  
  .localeformelement form .hs-submit input[type=submit] {
    font-size: var(--type-body);
  }
}

.localeformelement.formsmall--small .section__heading-bold {
  font-size: 1.4rem;
}

.localeformelement.formsmall--small form .hs-form-field {
  margin-bottom: 1rem;
}

.localeformelement.formsmall--small form input:not([type="submit"]),
.localeformelement.formsmall--small form textarea {
  padding: .5rem .25rem;
  width: 100%;
}

@media (min-width: 55rem) {
  .localeformelement.formsmall--small form label {
    font-size: 1rem;
  }
  .localeformelement.formsmall--small form .hs-submit input[type=submit] {
    font-size: 1rem;
  }
}


/* articles__tags */

.articles__tags li {
  display: inline-block;
  padding: 0 var(--padding-small);
}

.articles__tags li.active {
  font-weight: 600;
}

/* Default elements */
.hs_cos_wrapper_widget.hs_cos_wrapper_type_module.widget-type-rich_text,
.hs_cos_wrapper_widget.hs_cos_wrapper_type_module.widget-type-header,
.hs_cos_wrapper_widget.hs_cos_wrapper_type_module .hs-content-library.hs-content-library--minimal,
.hs_cos_wrapper_widget.hs_cos_wrapper_type_module .hs-button {
  max-width: var(--width-wide);
  margin-left: auto;
  margin-right: auto;
}