@import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@100;200;300&display=swap");
@font-face {
  font-family: "Josefin Sans";
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_DjRbMZhLw.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face {
  font-family: "Josefin Sans";
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_LjQbMZhLw.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face {
  font-family: "Josefin Sans";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/josefinsans/v17/Qw3PZQNVED7rKGKxtqIqX5E-AVSJrOCfjY46_GbQbMZhLw.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
* {
  box-sizing: border-box;
  font-family: inherit; }

html,
body {
  width: 100%; }

html {
  font-size: 100%;
  height: 100%; }

body {
  margin: 0;
  font-family: "Josefin Sans";
  min-height: 100%;
  display: flex;
  flex-direction: column; }

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

a:hover {
  text-decoration: underline; }

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

#skip-link {
  position: absolute;
  left: -9999px;
  top: 16px;
  background-color: #ffc100;
  z-index: 2;
  padding: 8px; }
  #skip-link:focus {
    left: 16px; }

header {
  /* NAV BAR */
  /* (mobile) */
  /* NAV BAR */
  /* (desktop) */ }
  @media (max-width: 753px), (max-height: 500px) {
    header {
      background-color: #ffffff;
      height: 70px;
      padding: 10px;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center; }
      header .logo {
        height: 100%;
        object-fit: cover;
        object-position: left top;
        color: #000000;
        /* For alt text */ } }
  @media (max-width: 753px) and (max-width: 210px), (max-height: 500px) and (max-width: 210px) {
    header .logo {
      width: 45px; } }
  @media (max-width: 753px), (max-height: 500px) {
      header .menu-checkbox {
        display: none; }
      header .menu-button {
        position: relative;
        margin-right: 10px;
        width: 24px;
        height: 24px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        cursor: pointer; }
      header .menu-line {
        display: block;
        width: 100%;
        height: 4px;
        background-color: #ffc100;
        border-radius: 3px;
        transition: all 0.5s ease;
        transform-origin: 92% center; }
      header .menu-checkbox:checked ~ .menu-button .menu-line:nth-of-type(1) {
        transform: rotate(-45deg) scale(1.4); }
      header .menu-checkbox:checked ~ .menu-button .menu-line:nth-of-type(2) {
        background-color: transparent; }
      header .menu-checkbox:checked ~ .menu-button .menu-line:nth-of-type(3) {
        transform: rotate(45deg) scale(1.4); }
      header nav {
        position: absolute;
        top: 70px;
        left: 0;
        width: 100%;
        background-color: #ffffff;
        z-index: 2; }
      header nav a {
        display: block;
        padding: 0 10px;
        line-height: 50px;
        text-decoration: none;
        color: #000000;
        font-size: 1.1rem;
        font-weight: bold;
        transition: height 0.5s ease;
        height: 0;
        overflow: hidden;
        border-left: 8px solid transparent; }
      header nav a:hover {
        text-decoration: none;
        /* need this to override default 'a' behaviour */ }
      header .menu-checkbox:checked ~ nav a {
        height: 50px; }
      header nav a.selected,
      header nav a:hover {
        border-left-color: #ffc100; }
      header .nav-children a {
        font-size: 0.8em;
        margin-left: 8px;
        border-left-width: 5px; } }
  @media (min-width: 754px) and (min-height: 501px) {
    header {
      background-color: #ffffff;
      height: 100px;
      padding: 20px;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center; }
      header .logo {
        margin-left: 20px;
        height: 100%;
        object-fit: cover;
        object-position: left top;
        color: #000000;
        /* For alt text */ }
      header .menu-checkbox {
        display: none; }
      header .menu-button {
        display: none; }
      header nav {
        display: flex;
        flex-direction: row; }
      header nav a {
        display: block;
        margin-right: 10px;
        padding: 10px 10px;
        text-decoration: none;
        color: #000000;
        border-top: 4px solid transparent;
        border-bottom: 4px solid transparent; }
      header nav a:hover {
        text-decoration: none;
        /* need this to override default 'a' behaviour */ }
      header nav a.selected,
      header nav a.child-is-selected,
      header nav a:hover {
        border-top-color: #ffc100; }
      header .nav-parent {
        position: relative; }
      header .nav-children {
        position: absolute;
        top: 100%;
        background-color: #ffffff;
        width: max-content;
        z-index: 1;
        height: 0;
        overflow: hidden; }
      header .nav-parent:hover .nav-children {
        height: auto; }
      header .nav-children a {
        margin: 0px;
        font-size: 0.8em; } }
  header .logo-container {
    height: 100%; }

footer {
  background-color: #ffffff;
  padding: 20px 0 10px 0;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center; }
  footer .row {
    padding-bottom: 5px; }
  footer .social-link {
    display: inline-block; }
  footer .social-link img {
    width: 40px;
    color: #000000;
    /* For alt text */
    filter: contrast(0%); }
  footer .footer-links {
    margin-bottom: 10px;
    list-style-type: none;
    color: #000000; }
    footer .footer-links li {
      padding: 3px 7px; }
    @media (min-width: 600px) {
      footer .footer-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: center; } }
  footer .copyright {
    margin: 0;
    color: #888;
    font-size: 0.8rem;
    text-align: center; }

.hero-box {
  width: 100%;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 10px 26px 10px;
  position: relative; }
  @media (min-aspect-ratio: 4 / 3) {
    .hero-box {
      min-height: 30vw; } }
  @media (min-width: 1001px) {
    .hero-box {
      min-height: 300px; } }
  @media (max-width: 400px) {
    .hero-box {
      min-height: 120px; } }
  @media (max-aspect-ratio: 4 / 3) {
    .hero-box {
      min-height: 240px; } }
  @media (max-aspect-ratio: 5 / 4) {
    .hero-box {
      /* Portrait */
      max-height: 100vw; } }
  @media (max-width: 650px), (max-height: 500px) {
    .hero-box {
      /* Change height based on Nav Bar's height */
      height: calc(80vh - 70px); } }
  @media (min-width: 651px) and (min-height: 501px) {
    .hero-box {
      /* Change height based on Nav Bar's height */
      height: calc(80vh - 100px); } }
  .hero-box picture {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
    background-color: #ffffff; }
  .hero-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center; }
  .hero-box .tagline-phrase {
    padding: 10px 0;
    text-align: center; }
  .hero-box span {
    display: block;
    text-align: center;
    color: #000000;
    font-size: calc(6vw + 10px);
    font-weight: 200; }
  .hero-box .tagline-small {
    font-size: calc(3.5vw + 6px);
    justify-content: center; }
  .hero-box .tagline-medium {
    font-size: calc(4vw + 8px);
    text-transform: uppercase; }
  .hero-box .hero-text {
    font-weight: 300;
    text-transform: uppercase; }
  @media (max-width: 600px) {
    .hero-box .tagline-medium {
      font-size: max(16px, 4vw); } }
  @media (max-width: 400px) {
    .hero-box .tagline {
      font-size: max(24px, 6vw); }
    .hero-box .tagline-phrase {
      margin: 5px; } }
  @media (min-aspect-ratio: 4 / 3) {
    .hero-box span {
      font-size: 6vw;
      display: inline; }
    .hero-box .tagline-small {
      font-size: 2px; }
    .hero-box .tagline-medium {
      font-size: 2px; } }
  @media (min-width: 1001px) {
    .hero-box span {
      font-size: 5vw;
      display: inline; }
    .hero-box .tagline-small {
      font-size: 1.5rem; }
    .hero-box .tagline-medium {
      font-size: 2rem; } }
  .hero-box .tagline-small,
  .hero-box .tagline-medium {
    font-weight: normal;
    width: 80%;
    margin: auto; }

.new-hero > * {
  max-width: 100%;
  background-color: #f0f0f0; }

@media (min-width: 1000px) {
  .new-hero {
    display: flex;
    flex-flow: row wrap;
    justify-content: center; }

  .new-hero > * {
    max-width: 50%;
    flex-grow: 1;
    text-align: center; }

  .hero-text {
    font-weight: 300;
    font-size: 60px;
    text-transform: uppercase; } }
.checkerboard-grid .row {
  margin-top: 20px;
  margin-bottom: 20px;
  margin-left: auto;
  margin-right: auto; }
@media (max-width: 360px) {
  .checkerboard-grid .row {
    width: 100%; } }
@media (min-width: 361px) and (max-width: 600px) {
  .checkerboard-grid .row {
    width: calc(100%); } }
@media (min-width: 601px) {
  .checkerboard-grid .row {
    width: calc(100%);
    display: flex;
    justify-content: space-between; } }
.checkerboard-grid.grid-no-gap .row {
  background-color: #f0f0f0; }
.checkerboard-grid picture {
  display: block; }
@media (max-width: 600px) {
  .checkerboard-grid picture {
    width: 100%; } }
@media (min-width: 601px) {
  .checkerboard-grid.grid-with-gap picture {
    width: calc(50%); }
  .checkerboard-grid.grid-no-gap picture {
    width: 50%; } }
.checkerboard-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center; }
.checkerboard-grid .text {
  padding: 30px 10px;
  display: flex;
  flex-direction: column;
  justify-content: center; }
@media (max-width: 600px) {
  .checkerboard-grid .text {
    position: relative; }
  .checkerboard-grid .text h2 {
    color: #000000;
    text-transform: uppercase; } }
@media (min-width: 601px) {
  .checkerboard-grid.grid-with-gap .text {
    width: calc(50% - 10px); }
  .checkerboard-grid.grid-no-gap .text {
    width: 50%; } }
@media (min-width: 801px) {
  .checkerboard-grid .text {
    padding: 50px 150px; } }
@media (max-width: 600px) {
  .checkerboard-grid .text h2 {
    margin: 0;
    padding: 10px;
    font-size: 8vw;
    text-transform: uppercase; } }
@media (min-width: 601px) {
  .checkerboard-grid .text h2 {
    font-size: 2rem;
    margin-top: 0;
    text-transform: uppercase; } }
.checkerboard-grid .text h3 {
  font-size: 1.5rem; }
.checkerboard-grid .text p {
  line-height: 1.5; }
.checkerboard-grid .text p:last-child {
  margin-bottom: 0; }
@media (min-width: 601px) {
  .checkerboard-grid.grid-picture-first .row:nth-of-type(odd) {
    flex-direction: row; }
  .checkerboard-grid.grid-picture-first .row:nth-of-type(even) {
    flex-direction: row-reverse; }
  .checkerboard-grid.grid-text-first .row:nth-of-type(odd) {
    flex-direction: row-reverse; }
  .checkerboard-grid.grid-text-first .row:nth-of-type(even) {
    flex-direction: row; } }

.our-team {
  width: 100%;
  max-width: 1000px;
  margin: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center; }
  .our-team .person {
    width: 180px;
    margin: 10px 20px;
    text-align: center; }
  .our-team .person picture {
    display: block;
    width: 100%; }
  .our-team .person picture img {
    display: block;
    width: 100%;
    border-radius: 50%; }
  .our-team .person h3,
  .our-team .person p {
    margin: 10px 0; }

.form-container {
  width: 100%;
  padding: 50px 10px; }

@media (min-width: 601px) {
  .form-container {
    width: 50%;
    padding: 50px 10px; } }
@media (min-width: 1200px) {
  .form-container {
    width: 50%;
    padding: 50px 100px; } }
.contact-us-form {
  margin: 20px 0; }
  .contact-us-form input,
  .contact-us-form textarea {
    display: block;
    width: 100%;
    resize: none;
    margin: 10px 0;
    padding: 5px;
    color: #000000;
    background: none;
    border: none;
    border-bottom: 1px solid #000000; }
  .contact-us-form input::placeholder,
  .contact-us-form textarea::placeholder {
    color: #000000; }
  .contact-us-form .submit-button {
    position: absolute;
    z-index: 99;
    background: transparent;
    color: transparent;
    border: none;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0; }
  .contact-us-form .submit-content-container {
    display: block;
    width: 100px;
    margin: auto;
    padding: 10px;
    position: relative;
    color: #000000;
    background: none;
    border: 1px solid #000000; }
  .contact-us-form .submit-content {
    text-align: center;
    width: 100%;
    height: 100%; }
  .contact-us-form.sending .submit-content, .contact-us-form.success .submit-content, .contact-us-form.error .submit-content {
    color: transparent; }
  .contact-us-form .submit-content::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    left: calc(50% - 10px);
    top: calc(50% - 11px); }
  .contact-us-form.sending .submit-content::after {
    border: 2px solid #000000;
    border-right: none;
    border-bottom: none;
    border-radius: 50%;
    animation-name: spin;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: linear; }
  .contact-us-form.success .submit-content::after {
    content: "\2714";
    color: #000000; }
  .contact-us-form.error .submit-content::after {
    content: "\274C";
    color: #000000; }
  .contact-us-form .error-message {
    font-size: 0.75rem;
    text-align: center;
    visibility: hidden; }
  .contact-us-form.error .error-message {
    visibility: visible; }

/* TWO COLUMNS - for Homepage FAQs */
.two-columns {
  max-width: 1000px;
  margin: auto;
  padding: 0 20px;
  column-gap: 20px; }
  @media (max-width: 600px) {
    .two-columns {
      column-count: 1; } }
  @media (min-width: 601px) {
    .two-columns {
      column-count: 2; } }
  .two-columns div {
    break-inside: avoid;
    padding: 1px; }
    .two-columns div h3 {
      font-size: 1.5rem; }
    .two-columns div p {
      font-size: 1rem; }

.three-columns {
  max-width: 1000px;
  margin: auto;
  padding: 0 20px;
  column-gap: 20px; }
  @media (max-width: 600px) {
    .three-columns {
      column-count: 1; } }
  @media (min-width: 601px) {
    .three-columns {
      column-count: 2; } }
  @media (min-width: 601px) {
    .three-columns {
      column-count: 3; } }
  .three-columns div {
    break-inside: avoid;
    padding: 1px; }
    .three-columns div h3 {
      font-size: 1.5rem; }
    .three-columns div p {
      font-size: 1rem; }

.companies-weve-worked-with {
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 70px; }
  .companies-weve-worked-with picture {
    margin: 20px; }
  .companies-weve-worked-with h2 {
    background-color: #000000; }
  .companies-weve-worked-with img {
    width: 100%; }

@media (min-width: 481px) {
  .column-container {
    margin: 50px; } }
.column-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-evenly;
  align-items: flex-start;
  padding: 25px;
  list-style: none; }

@media (min-width: 961px) {
  .column-item {
    max-width: 40%; } }
@media (min-width: 1551px) {
  .column-item {
    max-width: 30%; } }
.column-item {
  padding: 20px;
  margin-top: 10px;
  text-align: center; }

.name {
  text-align: right; }

.quotation-mark {
  content: "\201D";
  color: #000000; }

.hero-banner .row {
  margin-left: auto;
  margin-right: auto; }
@media (max-width: 360px) {
  .hero-banner .row {
    width: 100%; } }
@media (min-width: 361px) and (max-width: 600px) {
  .hero-banner .row {
    width: calc(100%); } }
@media (min-width: 601px) {
  .hero-banner .row {
    width: calc(100%);
    max-width: 100%;
    display: flex;
    justify-content: space-between; } }
.hero-banner.grid-no-gap .row {
  background-color: #f0f0f0; }
.hero-banner picture {
  display: block; }
@media (max-width: 600px) {
  .hero-banner picture {
    width: 100%; } }
@media (min-width: 601px) {
  .hero-banner.grid-with-gap picture {
    width: calc(50% - 10px); }
  .hero-banner.grid-no-gap picture {
    width: 50%; } }
.hero-banner img {
  display: block;
  width: 100%;
  object-fit: cover;
  object-position: center center; }
.hero-banner .text {
  padding: 30px 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center; }
@media (max-width: 600px) {
  .hero-banner .text {
    position: relative; }
  .hero-banner .text h2 {
    color: #000000; } }
@media (min-width: 601px) {
  .hero-banner.grid-with-gap .text {
    width: calc(50% - 10px); }
  .hero-banner.grid-no-gap .text {
    width: 50%; } }
@media (min-width: 801px) {
  .hero-banner .text {
    padding: 20px; } }
@media (max-width: 600px) {
  .hero-banner .text h1 {
    margin: 0;
    padding: 10px;
    font-size: 5vw;
    text-transform: uppercase; } }
@media (min-width: 601px) {
  .hero-banner .text h1 {
    font-size: 5vw;
    font-weight: 200;
    margin-top: 0;
    padding: 0px 50px;
    text-transform: uppercase; } }
.hero-banner .text h3 {
  font-size: 1.5rem; }
.hero-banner .text p {
  line-height: 1.5; }
.hero-banner .text p:last-child {
  margin-bottom: 0; }
@media (min-width: 601px) {
  .hero-banner.grid-picture-first .row:nth-of-type(odd) {
    flex-direction: row; }
  .hero-banner.grid-picture-first .row:nth-of-type(even) {
    flex-direction: row-reverse; }
  .hero-banner.grid-text-first .row:nth-of-type(odd) {
    flex-direction: row-reverse; }
  .hero-banner.grid-text-first .row:nth-of-type(even) {
    flex-direction: row; } }

@media (max-width: 1000px) {
  .section {
    padding: 5vw 0; } }
@media (min-width: 1001px) {
  .section {
    padding: 50px 0; } }
.section > h2 {
  text-align: center;
  font-size: 2rem;
  text-transform: uppercase; }
  @media (max-width: 600px) {
    .section > h2 {
      padding: 0 20px; } }
  @media (min-width: 601px) {
    .section > h2 {
      padding: 50px 20px; } }

.black-text {
  color: #181818; }

.white-text {
  color: #ffffff; }

.yellow-background {
  background-color: #ffc100; }

.grey-background {
  background-color: #f0f0f0; }

.black-background {
  background-color: #000000; }

.white-background {
  background-color: #ffffff; }

.image-background {
  background-image: url("/images/homepage-hero-1920-1280.jpg"); }

.full-page-header {
  background-color: #f0f0f0;
  color: #000000;
  text-align: center; }
  @media (max-width: 600px) {
    .full-page-header {
      padding: 10px 10px;
      margin: 5px; } }
  @media (min-width: 601px) and (max-width: 1000px) {
    .full-page-header {
      padding: 10px 20px;
      margin: 20px; } }
  @media (min-width: 1001px) {
    .full-page-header {
      padding: 150px 150px;
      margin: 150px; } }

.text-no-image {
  background-color: #f0f0f0;
  color: #000000;
  text-align: left; }
  @media (max-width: 600px) {
    .text-no-image {
      padding: 10px 10px;
      margin: 50px 20px; } }
  @media (min-width: 601px) and (max-width: 1000px) {
    .text-no-image {
      padding: 50px 50px;
      margin: 50px 50px; } }
  @media (min-width: 1001px) {
    .text-no-image {
      padding: 100px 150px;
      margin: 50px 100px; } }

.uppercase {
  text-transform: uppercase; }

.significant-text-block {
  font-size: 1.5rem;
  text-align: center;
  padding: 0px 100px; }
  @media (max-width: 600px) {
    .significant-text-block {
      font-size: max(16px, 4vw);
      padding: 0px; } }

.narrow-height-padding {
  padding-top: 10px;
  padding-bottom: 10px; }

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

@media (max-width: 1000px) {
  .button-row-gap-above {
    margin-top: 5vw; } }
@media (min-width: 1001px) {
  .button-row-gap-above {
    margin-top: 50px; } }
@media (max-width: 1000px) {
  .button-row-gap {
    margin-top: 5vw;
    padding: 50px; } }
@media (min-width: 1001px) {
  .button-row-gap {
    margin-top: 50px;
    padding: 50px; } }
.float-over-hero-image {
  position: relative; }
  @media (max-width: 480px) {
    .float-over-hero-image {
      margin-top: -32px; } }
  @media (min-width: 481px) and (max-width: 600px) {
    .float-over-hero-image {
      margin-top: -6vw; } }
  @media (min-width: 601px) {
    .float-over-hero-image {
      margin-top: -36px; } }
  .float-over-hero-image::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #181818;
    z-index: -3; }

.button {
  display: inline-block;
  transition-property: color, background-color, filter;
  transition-duration: 0.5s;
  transition-timing-function: ease;
  border-width: 3px;
  border-style: solid; }

a.button {
  text-decoration: none; }

@media (max-width: 480px) {
  .button {
    margin: 8px;
    padding: 8px 16px;
    font-size: 16px; } }
@media (min-width: 481px) and (max-width: 600px) {
  .button {
    margin: 1.666vw;
    padding: 1.666vw 3.333vw;
    font-size: 3.333vw; } }
@media (min-width: 601px) {
  .button {
    margin: 10px;
    padding: 10px 20px;
    font-size: 20px; } }
.button-black-on-yellow-on-yellow {
  background-color: #ffc100;
  color: #181818;
  border-color: #181818; }

.button-black-on-yellow-on-yellow:hover {
  background-color: #181818;
  color: #ffc100; }

.button-black-on-yellow-on-black {
  background-color: #ffc100;
  color: #181818;
  border-color: #ffc100; }

.button-black-on-yellow-on-black:hover {
  color: #000000;
  background-color: #f0f0f0; }

.button-yellow-on-black-on-black {
  background-color: #181818;
  color: #ffc100;
  border-color: #ffc100; }

.button-yellow-on-black-on-black:hover {
  background-color: #ffc100;
  color: #181818; }

.medium-width-text {
  max-width: 800px;
  margin: auto;
  padding: 0 10px;
  font-size: 1.2rem;
  line-height: 1.5;
  text-align: center; }

.medium-width-block {
  max-width: 800px;
  margin: auto;
  padding: 0 20px; }

.medium-width-block-narrow-margins {
  max-width: 800px;
  margin: auto;
  padding: 50px 50px; }

.full-width-text {
  max-width: 980px;
  margin: auto;
  padding: 0 10px;
  font-size: 1rem;
  line-height: 1.5;
  text-align: center; }

.application-form .application-form-field {
  display: block;
  resize: none;
  margin: 10px 0;
  padding: 5px;
  color: #000000;
  background: none;
  border: 0px solid #ffc100;
  border-bottom-width: 1px;
  font-size: 15px;
  outline: none; }
.application-form input::placeholder,
.application-form textarea::placeholder {
  color: #000000; }
.application-form .two-cols {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px; }
@media (max-width: 650px) {
  .application-form .two-cols > * {
    width: 100%; } }
@media (min-width: 651px) {
  .application-form .two-cols > * {
    width: calc(50% - 20px); } }
.application-form .half-width-label {
  margin: 10px 0;
  padding: 5px;
  font-size: 15px; }
@media (max-width: 650px) {
  .application-form .half-width-label {
    margin: 20px 0 5px 0; } }
.application-form .half-width-options {
  padding: 5px; }
.application-form .radio-button-label {
  margin-right: 30px;
  display: inline-flex;
  cursor: pointer; }
.application-form input[type="radio"] {
  position: relative;
  width: 0.1px;
  margin-right: 30px;
  border: 2px solid #999; }
.application-form input[type="radio"]::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  background-color: #ffc100;
  border-radius: 50%;
  cursor: pointer;
  border: 6px solid black; }
.application-form input[type="radio"]:hover::before {
  filter: brightness(70%); }
.application-form input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  width: 8px;
  height: 8px;
  top: 5px;
  left: 5px;
  background-color: #181818;
  border-radius: 50%;
  cursor: pointer; }
.application-form textarea.application-form-field {
  width: 100%;
  border-width: 1px; }
.application-form .cv-upload {
  margin: 20px 0; }
.application-form .cv-upload label {
  cursor: pointer; }
.application-form input[type="file"] {
  width: 0.1px;
  position: absolute;
  opacity: 0; }
.application-form select {
  width: 100%; }
.application-form select.application-form-field {
  background-color: #ffffff;
  border: 1px solid #ffc100; }
.application-form select option[disabled] {
  display: none; }
.application-form #declaration-box {
  border: 2px solid #ffc100;
  padding: 0 1em 10px 1em; }
.application-form #submit-button {
  position: relative;
  width: 140px;
  cursor: pointer; }
.application-form #submit-button.sending,
.application-form #submit-button.success,
.application-form #submit-button.error {
  color: transparent; }
.application-form #submit-button::after {
  content: "";
  position: absolute;
  width: calc(1em);
  height: calc(1em);
  left: calc(50% - 0.5em);
  top: calc(50% - 0.5em);
  line-height: 1em; }
.application-form #submit-button.sending::after {
  border: 2px solid #181818;
  border-right: none;
  border-bottom: none;
  border-radius: 50%;
  animation-name: spin;
  animation-duration: 1s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }
.application-form #submit-button.sending:hover::after {
  border-color: #ffffff; }
.application-form #submit-button.success::after {
  content: "\2714";
  color: #181818; }
.application-form #submit-button.error::after {
  content: "\274C";
  color: #181818; }
.application-form .error-message {
  font-size: 0.75rem;
  text-align: center;
  display: none; }
.application-form .error-message.error-message-visible {
  display: block; }
.application-form .application-form-field-error {
  border: 1px solid #dd4400 !important; }
.application-form .button.application-form-field-error {
  border-width: 3px !important; }
.application-form input[type="radio"].application-form-field-error::before {
  background-color: #dd4400; }
.application-form #application-success-box {
  border: 2px solid #ffc100;
  padding: 0 1em 10px 1em; }
.application-form .invisible {
  display: none; }

.blog {
  max-width: 960px;
  margin: auto;
  padding: 20px 10px;
  background-color: #f0f0f0;
  font-size: 1rem;
  line-height: 1.5;
  border-bottom: 1px solid #ffc100; }
  @media (min-width: 361px) {
    .blog {
      width: calc(100% - 40px); } }
  @media (min-width: 601px) {
    .blog {
      padding: 30px 20px; } }
  .blog .blog-title {
    font-size: 60px;
    text-transform: uppercase;
    text-align: center; }
  .blog h2 {
    font-size: 2rem;
    color: #000000; }
  .blog .yellow {
    color: #000000;
    text-transform: uppercase; }
  .blog .read-more {
    font-weight: bold;
    font-size: 1.25rem;
    text-decoration: underline; }
  .blog .date {
    font-style: italic; }
  .blog a {
    text-decoration: underline; }

.case-studies h1, .case-studies h3, .case-studies h4, .case-studies h5, .case-studies p {
  font-size: inherit;
  font-weight: inherit; }
.case-studies img {
  object-fit: cover; }
.case-studies .text-center {
  text-align: center; }
.case-studies .font-bold {
  font-weight: bold; }
.case-studies .font-bolder {
  font-weight: bolder; }
.case-studies .text-lg {
  font-size: large; }
.case-studies .text-xl {
  font-size: x-large; }
.case-studies .text-2xl {
  font-size: xx-large; }
.case-studies .text-3xl {
  font-size: xxx-large; }
.case-studies .flex {
  display: flex; }
.case-studies .flex-col {
  flex-flow: column; }
.case-studies .items-center {
  align-items: center; }
.case-studies .justify-center {
  justify-content: center; }
.case-studies .px-4 {
  padding-left: 1rem;
  padding-right: 1rem; }
.case-studies .bg-light-grey {
  background: #f0f0f0; }
.case-studies .w-full {
  width: 100%; }
.case-studies .container-box {
  padding: 1rem;
  width: 30%;
  flex-grow: initial; }
.case-studies .title-header {
  margin: 0 0 1rem; }
.case-studies .flex-row {
  flex-direction: row; }
.case-studies .flex-row-reverse {
  flex-direction: row-reverse; }
.case-studies .reactive-width {
  width: 50%; }
  @media (max-width: 1001px) {
    .case-studies .reactive-width {
      width: 100%; } }
.case-studies .details-section {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem; }
  @media (max-width: 1001px) {
    .case-studies .details-section {
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      margin-top: 1rem; } }
.case-studies .details-section > div {
  padding: 1rem 2rem; }
  @media (max-width: 1001px) {
    .case-studies .details-section > div {
      padding: .5rem; } }
.case-studies .opening-section {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  flex-wrap: wrap;
  width: 100%; }
  @media (max-width: 1001px) {
    .case-studies .opening-section {
      flex-direction: column;
      justify-content: start;
      align-items: center; } }
@media (max-width: 1001px) {
  .case-studies .opening-section > div {
    width: 100%;
    margin-top: 2rem; } }
.case-studies .details-container {
  margin: 5rem 0; }
  @media (max-width: 1001px) {
    .case-studies .details-container {
      margin: 4rem 2rem; } }
.case-studies .headline {
  text-align: center;
  width: 75%;
  padding-bottom: 3rem; }
  @media (max-width: 1001px) {
    .case-studies .headline {
      width: 100%;
      padding-bottom: 2rem; } }
.case-studies .banner-layout {
  display: flex;
  width: 100%;
  padding-left: 2.5rem;
  align-items: center;
  flex-direction: row;
  justify-content: space-between; }
  @media (max-width: 1001px) {
    .case-studies .banner-layout {
      padding-left: 0;
      flex-direction: column;
      justify-content: start;
      align-items: center; } }

.thank-you {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center; }
  .thank-you h1, .thank-you h3, .thank-you h4, .thank-you h5, .thank-you p {
    font-size: inherit;
    font-weight: inherit; }
  .thank-you .text-center {
    text-align: center; }
  .thank-you .font-bold {
    font-weight: bold; }
  .thank-you .font-bolder {
    font-weight: bolder; }
  .thank-you .text-lg {
    font-size: large; }
  .thank-you .text-xl {
    font-size: x-large; }
  .thank-you .text-2xl {
    font-size: xx-large; }
  .thank-you .text-3xl {
    font-size: xxx-large; }
  .thank-you .px-4 {
    padding-left: 2rem;
    padding-right: 2rem; }
  .thank-you .w-full {
    width: 100%; }
  .thank-you .bg-light-grey {
    background: #f0f0f0; }
  .thank-you .flex {
    display: flex; }
  .thank-you .items-center {
    align-items: center; }
  .thank-you .justify-center {
    justify-content: center; }
  .thank-you .reactive-flex {
    flex-direction: row; }
    @media (max-width: 1001px) {
      .thank-you .reactive-flex {
        flex-direction: column; } }
  .thank-you .reactive-width {
    width: 50%; }
    @media (max-width: 1001px) {
      .thank-you .reactive-width {
        width: 100%; } }

/* TODO: NEED TO DECIDE WHERE TO PUT ALL THIS */
hr {
  border: 1px solid #ffc100;
  margin: 30px auto; }

.hidden {
  display: none; }

/* For the application form hidden elements it needs to be this specific or it will be overriden */
.application-form .application-form-field.hidden {
  display: none; }

/* TODO: This is breaking things (e.g. the "Contact Us" bit on each page has too much spacing now */
p.margin-between {
  margin-top: 0.5em;
  margin-bottom: 0.5em; }

h3 {
  font-size: 1.7rem;
  text-transform: uppercase; }

.map {
  width: 100%;
  height: 450px;
  max-height: 100vw;
  border: 0;
  filter: grayscale(1); }

@keyframes spin {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
ul {
  margin: 0;
  padding-left: 20px; }
  ul li {
    padding: 5px 0; }

.text-only {
  text-align: left; }
