/* ********************************* */
/* HERO SECTION                      */
/* ********************************* */

.section-hero--home,
.hero-img--home {
  height: 86rem;
}

.section-hero--home {
  margin-bottom: 0;
}

.hero-img--home {
  background-image: linear-gradient(
      to right,
      var(--colour--black--transparency-lowest),
      transparent
    ),
    url(/pages/home/images/hero.webp);

  background-size: cover;
}

.hero-container--home {
  /* In relation to the parent size */
  left: 25rem;
  top: 32rem;
}

/* ********************************* */
/* CLIENT LOGOS SECTION              */
/* ********************************* */

/* Add padding to the section container */
.section-clients .container--global {
  padding: 6.4rem 0 6.4rem 0;
}

.subheading--clients {
  text-align: center;
  color: var(--colour--grey-medium);
  margin-bottom: 4.8rem;
}

.clients-logos {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.clients-logos img {
  height: 3.6rem;
  opacity: 60%;
}

/* Individual logo sizing to make the logos look more balanced */

#lloydHill {
  height: 3.2rem; /* ~0.4rem smaller than clients-logos img */
}

#geoafrika {
  filter: brightness(0); /* Make logo black */
  height: 3.2rem; /* ~0.4rem smaller than clients-logos img */
}

#premier {
  height: 4.8rem; /* ~1.2rem bigger than clients-logos img */
}

/* ********************************* */
/* VIDEO SECTION                     */
/* ********************************* */

.section-video {
  margin-bottom: 8rem;
}

.video-box--home {
  display: flex;
  justify-content: center;
  transition: all 0.4s;
}

.video-box--home:hover {
  transform: scale(1.05);
}

/* ********************************* */
/* HOW WE HELP SECTION               */
/* ********************************* */

.section-how {
  margin-bottom: 12.8rem;
}

/* Three columns where the laptop screenshot occupies two.  This allows for the
   Z-pattern rather than using 2fr 1fr. */
.grid--how {
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 1.6rem;
}

.section-heading .heading-secondary--global {
  margin-bottom: 6.4rem;
}

.how-image-box {
  /* To align the image within the image box (and still have the image smaller 
     than the box) */
  display: flex;
  align-items: center;
  justify-content: center;

  transform: translate(0%, 5%);

  grid-column: span 2;
  z-index: 999; /* Above everything, but still behind the navigation */
}

.how-screenshot {
  width: 90%; /* 90% of the parent element: how-image-box */
}

.how-text-box {
  align-self: center;
  z-index: 99;

  /* The ::before element must be positioned relative to the text box */
  position: relative;
}

/* Green background box is 'floating' out of the page flow as a ::before element
   relative to the how-text-box */
.how-text-box::before {
  position: absolute;
  display: block;
  content: ""; /* No content */
  z-index: -99; /* Below everything, but still in front of the page background */

  width: 60rem;
  height: 140%;
  transform: translate(-25%, -15%);

  background-color: var(--colour--primary);
  box-shadow: 0 20px 30px 0 var(--shadow--dark);
}

/* Move the second textbox as it is on the left of the screenshot */
.how-text-box--2::before {
  transform: translate(-12%, -15%);
}

.heading-tertiary--how {
  color: var(--colour--primary-tint-white);
}

.how-paragraph {
  line-height: var(--line-height--medium);
  font-size: 2.2rem;
  color: var(--colour--primary-tint-lightest);
}

/* ********************************* */
/* TESTIMONIALS SECTION              */
/* ********************************* */

.section-testimonials {
  margin-bottom: 9.6rem;
}

.testimonial {
  display: flex;
  flex-direction: column;
  justify-content: center;

  background-color: var(--colour--white);
  box-shadow: 0 20px 30px 0 var(--shadow--medium);
  border-radius: var(--border-radius--box);

  padding: 4.2rem;
}

.grid--testimonials {
  row-gap: 4.8rem;
}

.testimonial-text {
  font-size: 2rem;
  line-height: var(--line-height--small-medium);

  margin-bottom: 2.4rem;
}

.testimonial-box {
  display: flex;
}

.testimonial-img {
  height: 12.8rem;
  filter: grayscale(100%);
  padding-right: 2.4rem;
}

.testimonial-credits {
  align-self: center;
}

.testimonial-name {
  font-size: 2.4rem;
  margin-bottom: 1.2rem;
  display: block;
}

/* ********************************* */
/* CTA SECTION                       */
/* ********************************* */

.section-cta {
  margin-bottom: 12.8rem;
}

.section-cta .container--global {
  border-top: none;
}

.cta {
  display: flex;
  align-items: center;

  background-color: var(--colour--primary);
  border-radius: var(--border-radius--box);
  box-shadow: 0 20px 30px 0 var(--shadow--darkest);

  transition: all 0.4s;
}

/* When hovering, scale the box up with a transition (above) */
.cta:hover {
  transform: scale(1.05);
}

.cta-heading-box {
  display: flex;
  justify-content: center;
}

.cta-heading {
  color: var(--colour--primary-tint-white);
  font-size: 12.8rem;
  font-weight: var(--font-weight--bold);
  letter-spacing: var(--letter-spacing--heading-large);

  text-transform: uppercase;
  text-align: center;

  padding: 2.4rem;
  border-right: solid 1px var(--colour--primary-tint-dark); /* Add a border to the right of the heading, making use of the heading padding to size */
}

.cta-text-box {
  display: flex;
  flex-direction: column;
  justify-content: center;

  width: 75%;
  padding: 8rem;
}

.cta-text {
  color: var(--colour--primary-tint-lightest);
  font-size: 2.2rem;
  line-height: var(--line-height--small-medium);

  padding: 0 0 4.8rem 0;
}

/* "Contact Us" Button */

.button--cta,
.button--cta:link,
.button--cta:visited {
  font-size: 3rem;

  background-color: var(--colour--primary-shade-medium);
  color: var(--colour--primary-tint-white);

  margin-bottom: 1.6rem;
}

.button--cta:hover,
.button--cta:active {
  background-color: var(--colour--primary-tint-white);
  color: var(--colour--primary-shade-medium);
}

.button--cta:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.8rem var(--shadow--white);
}

/* "Learn More" Button */

.button--more,
.button--more:link,
.button--more:visited {
  background-color: var(--colour--primary-tint-lightest);
  color: var(--colour--primary-shade-darkest);
}

.button--more:hover,
.button--more:active {
  background-color: var(--colour--primary-tint-light);
}

.button--more:focus-visible {
  outline: none;
  box-shadow: 0 0 0 0.8rem var(--shadow--white);
}

/* ********************************* */
/* GALLERY SECTION               */
/* ********************************* */

.section-gallery {
  margin-bottom: 12.8rem;
}

.grid-gallery--global {
  column-gap: 1.2rem;
  row-gap: 1.2rem;
}

.gallery-item img {
  display: block;

  width: 100%;
  height: 100%;
  object-fit: cover;

  transition: all 0.4s;
}

/* Scale the image up when hovering, but hide the overflow to give a 'zooming' effect */
.gallery-item img:hover {
  transform: scale(1.1);
}

.gallery-item {
  overflow: hidden;
}

/* Place the images in different positions in the grid - some bigger and some smaller */

.gallery-item--1 {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

.gallery-item--2 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.gallery-item--3 {
  grid-column: 4 / 6;
  grid-row: 1 / 2;
}

.gallery-item--4 {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}

.gallery-item--5 {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
}

.gallery-item--6 {
  grid-column: 3 / 5;
  grid-row: 2 / 4;
}

.gallery-item--7 {
  grid-column: 5 / 6;
  grid-row: 2 / 3;
}

.gallery-item--8 {
  grid-column: 5 / 6;
  grid-row: 3 / 4;
}

.gallery-item--9 {
  grid-column: 2 / 4;
  grid-row: 4 / 5;
}

.gallery-item--10 {
  grid-column: 1 / 2;
  grid-row: 4 / 5;
}

.gallery-item--11 {
  grid-column: 4 / 6;
  grid-row: 4 / 5;
}
