:root {
  --strong-orange: rgb(243, 126, 0);
  --med-strong-orange: rgb(249, 168, 81);
  --med-orange: rgb(247, 178, 105);
  --mid-orange: rgb(250, 213, 156);
  --strong-blue: rgb(2, 125, 208);
  --dark-strong-blue: rgb(85, 125, 165);
  --med-blue: rgb(152, 198, 235);
  --mid-blue: rgb(203, 226, 245);
  --light-blue: rgb(224, 237, 249);
  --mid-grey-blue: rgb(136, 178, 211);
  --dark-grey-blue: rgb(76, 99, 117);
  --white: rgb(255, 255, 255);
  --black: rgb(0, 0, 0);
}

/* Font: BenchNine[Font].
"https://fonts.googleapis.com/css2?family=BenchNine:wght@300;400;700&display=swap";
Accessed 23/10/23 */
@font-face {
  font-family: "BenchNine-Bold";
  src: url("./benchnine/BenchNine-Bold.ttf");
}
@font-face {
  font-family: "BenchNine-Regular";
  src: url("./benchnine/BenchNine-Regular.ttf");
}

body {
  background-color: transparent;
  background-image: url("images/vertical_gradient.png");
  background-repeat: repeat-x;
  margin: 0;
  padding: 0;
  font-family: "Times New Roman", Times, serif;
}

main {
  margin: 0;
}

/* custom elements for columns and rows*/
.flex-content {
  display: flex;
  justify-content: space-around;
  flex-flow: wrap;
  align-items: stretch;
  flex-direction: row;
  flex-wrap: nowrap;
  margin-top: 0;
}

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

.small {
  flex-grow: 1;
}

.double {
  flex-grow: 2;
}

.triple {
  flex-grow: 3;
}

.quad {
  flex-grow: 4;
}

.sticky-container {
  position: sticky;
  top: 0;
  left: 0;
  box-sizing: border-box;
  z-index: 1000;
}

/* columns*/
.column-container {
  box-sizing: border-box;
  display: inline-flex;
  flex-direction: row;
  grid-template-columns: auto auto auto auto;
  padding: 1%;
  margin: 1%;
  align-items: stretch;
  flex-shrink: initial;
}

.column-container > section {
  background-color: transparent;
  text-align: left;
}
.grid-container {
  background-color: transparent;
  text-align: left;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: auto auto auto auto;
  padding: 1%;
  margin: 0;
  z-index: -1;
  position: relative;
}

.grid-two-col {
  grid-template-columns: auto auto;
}

.grid-three-col {
  grid-template-columns: auto auto auto;
}

.grid-five-col {
  grid-template-columns: auto auto auto auto auto;
}

.grid-six-col {
  grid-template-columns: auto auto auto auto auto auto;
}

.grid-six-col h2 {
  grid-column-end: span 6;
  margin-left: 0;
}

/*grid*/
.grid-item {
  margin-top: 0;
  padding: 10%;
  padding-bottom: 0;
  background-color: var(--white);
  background-repeat: no-repeat;
  background-size: contain;
  text-align: left;
}

p.grid-item {
  position: relative;
  word-wrap: normal;
  font-size: 1.3rem;
  margin-left: 10%;
}

img.grid-item {
  width: 90%;
}

/*side section, footer, address and top image*/

.sidebar {
  margin: 1%;
}

.sidebar h2,
.sidebar h3 {
  background-color: transparent;
  opacity: 1;
  border: 0;
  text-align: right;
  font-size: 7rem;
  line-height: 7rem;
  font-family: "BenchNine-Bold";
  padding: 1%;
  margin: 1%;
}

.sidebar h2 > a.side-text {
  text-decoration: none;
  color: var(--dark-strong-blue);
}

.sidebar h3 > a.side-text-sub {
  display: inline;
  color: var(--mid-grey-blue);
  text-decoration: none;
}

.sidebar h2 a.side-text:hover {
  color: var(--strong-orange);
}
.sidebar h3 > a.side-text-sub.small:hover {
  color: var(--med-strong-orange);
}

footer {
  border-top: 10px solid var(--light-blue);
  background-color: var(--med-blue);
  font-family: "BenchNine-Regular";
  position: fixed;
  bottom: 0;
  width: 100%;
  margin: 0;
  padding: 1%;
  text-align: left;
  float: left;
  clear: none;
  font-size: 1.2rem;
  z-index: 10;
}

address {
  margin: 2% 0;
  padding: 1%;
  font-family: "BenchNine-Regular";
  font-size: 1.8rem;
  text-align: left;
  float: left;
  color: var(--dark-grey-blue);
}

.top-img {
  position: fixed;
  top: 0;
  right: 0;
  width: 20%;
  opacity: 0.7;
}

/*navigation menu*/
nav {
  display: block;
  background-color: var(--light-blue);
  box-shadow: 3px 3px 3px var(--mid-grey-blue);
  z-index: 1500;
  opacity: 1;
}

nav ul {
  margin: 0;
  padding: 0;
}
nav ul li {
  text-align: left;
  display: inline-flex;
  padding: 0 1%;
}
nav ul li a {
  font-size: 1.8em;
  text-decoration: none;
  font-family: "BenchNine-Bold";
  color: var(--dark-grey-blue);
  z-index: 1100;
}

nav ul li a:hover {
  color: var(--strong-orange);
}
/*h1 to h4 tags*/
h1,
h2,
h3,
h4 {
  font-family: "BenchNine-Bold";
  color: var(--dark-grey-blue);
  margin: 3% 1% 1%;
  padding: 0;
}

h1,
h2 {
  box-sizing: border-box;
  text-align: left;
  float: left;
  clear: both;
  color: var(--dark-strong-blue);
  text-align: left;
  font-size: 7rem;
  line-height: 7rem;
  margin: 1% 1% 1% 2%;
  padding: 0;
}

h2,
h3 {
  color: var(--dark-grey-blue);
  text-align: left;
  font-size: 2rem;
  line-height: 2rem;
  margin-top: 0;
  margin-left: calc(2% + 5px);
}

/* moving image and text*/
img-text-box {
  padding: 0;
  position: sticky;
  z-index: 100;
}

img-text-box h4 {
  margin: 0;
  width: 10%;
  position: sticky;
  text-align: center;
  font-size: 2rem;
  color: var(--dark-grey-blue);
}

img.person {
  width: 10%;
  position: sticky;
}

/*animation*/
.move {
  background: transparent;
  animation-duration: 2s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  opacity: 0;
  position: sticky;
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.move-first {
  animation-delay: 1s;
  animation-name: move-in-from-left;
}

.move-second {
  animation-delay: 4s;
  animation-name: bounce-in;
}

.move-third {
  animation-delay: 7s;
  animation-name: move-in-from-right;
}

.move-across {
  animation-delay: 2;
  animation-name: move-across-from-left;
  animation-duration: 10s;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
  opacity: 1;
  animation-direction: alternate-reverse;
  animation-timing-function: ease-in-out;
}

@keyframes move-in-from-left {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    transform: translateX(-10%);
    opacity: 1;
  }
}

@keyframes move-in-from-right {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  50% {
    opacity: 0.8;
  }
  100% {
    transform: translateX(-10%);
    opacity: 1;
  }
}

@keyframes bounce-in {
  0% {
    transform: scale(0.1);
    opacity: 0;
  }
  40% {
    transform: scale(1.5);
    opacity: 0.8;
  }
  80% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: translateX(-10%);
    opacity: 1;
  }
}

@keyframes move-across-from-left {
  0% {
    transform: translateX(830%);
  }
  100% {
    transform: translateX(10%);
  }
}
/*sections and section features*/
section {
  box-sizing: border-box;
  margin: 1%;
  padding: 1% 0 0 0;
}

section.flex-info-box {
  background-color: var(--light-blue);
}

video {
  width: 100%;
}

section.flex-video-box {
  background-color: var(--light-blue);
  z-index: -100;
}
/*forms and form fields*/
form {
  background-color: var(--light-blue);
  box-sizing: border-box;
  margin: 1%;
  padding: 4%;
  font-size: 1.4rem;
}

input {
  width: 100%;
  padding: 1%;
  margin: 1% auto;
  box-sizing: border-box;
  border: 2px solid var(--mid-grey-blue);
  border-radius: 4px;
  background-color: var(--white);
  color: var(--dark-grey-blue);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.1rem;
  color: var(--black);
}

input-row {
  box-sizing: border-box;
  float: left;
  clear: both;
  width: 100%;
  margin-top: 1%;
}

input-row.three-quarters {
  width: 75%;
}

input-row.half {
  width: 50%;
}

input-row:after {
  content: "";
  display: table;
  clear: both;
}

.checkbox-container {
  display: block;
  position: relative;
  padding-left: 20%;
  margin-bottom: 2%;
  cursor: pointer;
  font-size: 1.4rem;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 1;
  line-height: 1.8rem;
}

.checkbox-container input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: var(--white);
  border: 1px solid var(--mid-grey-blue);
}

.checkbox-container:hover input ~ .checkmark {
  background-color: var(--med-blue);
}

.checkbox-container input:checked ~ .checkmark {
  background-color: var(--strong-blue);
}

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.checkbox-container input:checked ~ .checkmark:after {
  display: block;
}

.checkbox-container .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="search"]:focus,
input[type="date"]:focus {
  background-color: var(--white);
  border: 4px solid var(--med-orange);
}

input[type="submit"] {
  background-color: var(--dark-grey-blue);
  border: none;
  color: var(--white);
  padding: 2%;
  text-decoration: none;
  margin: 3% 0;
  font-size: 1rem;
  cursor: pointer;
  width: 40%;
}

label {
  font-family: "BenchNine-Regular";
  margin-top: 2%;
  color: var(--dark-grey-blue);
  text-wrap: nowrap;
}

search-box label {
  margin: 0;
  padding: 0 2%;
  text-align: left;
  float: left;
  clear: both;
  font-size: 1.4rem;
}

fieldset {
  background-color: var(--light-blue);
  border: none;
  padding: 1%;
}

legend,
fieldset > p {
  background-color: transparent;
  color: var(--dark-grey-blue);
  padding: 1%;
  font-family: "BenchNine-Bold";
}

/* media query additional styles */
@media only screen and (max-width: 992px) {
  .checkbox-container {
    padding-left: 10%;
  }

  .sidebar h2,
  .sidebar h3 {
    font-size: 5rem;
    line-height: 5rem;
    float: right;
    clear: both;
  }

  .flex-content {
    flex-direction: column;
  }

  .grid-six-col {
    grid-template-columns: auto auto;
  }

  .grid-six-col h2 {
    grid-column-end: span 2;
    margin-left: 0;
  }

  p.grid-item {
    margin-bottom: 5%;
  }

  img.grid-item {
    width: 100%;
  }

  .top-img {
    width: 30%;
  }

  @media only screen and (max-width: 768px) {
    .checkbox-container {
      padding-left: 10%;
    }

    img-text-box h4 {
      margin: 1%;
      width: 20%;
      font-size: 1.4rem;
    }

    img.person {
      width: 20%;
    }

    @keyframes move-across-from-left {
      0% {
        transform: translateX(320%);
      }
      100% {
        transform: translateX(10%);
      }
    }

    .column-container {
      flex-direction: column;
    }

    p.grid-item {
      font-size: 1.3rem;
    }

    search-box label,
    search-box input {
      margin-top: 2%;
    }
  }
}
