  :root {
    --realestate-black: #242424;
    --realestate-white: #fafafa;
    --real-whitebackup: #f5f5f5;
    --realestate-green: #9fd89f;

    --background-primary: var(--realestate-black);
    --background-inverse: var(--realestate-white);
    --background-accent: var(--realestate-green);
    --text-color-primary: var(--realestate-black);
    --text-color-inverse: var(--realestate-white);

    --font-size-elephant: 48px;
    --font-size-large: 28px;
    --font-size-medium: 18px;
    --font-size-small: 22px;
    --font-size-smallest: 20px;
    --font-size-smallestest: 16px;
    --font-size-snail: 14px;

    --font-weight-normal: 400;
    --font-weight-semibold: 600;

    --line-height-large: 32px;
    --line-height-normal: 22px;
    --line-height-100: 100%;

    --spacing-default: 20px;
    --spacing-medium: 16px;
    --spacing-small: 12px;

    --text-shadow-white: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
  }

  body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: var(--background-inverse);
    color: var(--text-color-primary);
    font-size: var(--font-size-medium);
  }

  h1 {
    margin-bottom: 0;
  }

  h1,
  h2 {
    font-size: var(--font-size-large);
    margin-bottom: var(--spacing-default);
  }

  .caps {
    text-transform: uppercase;
  }

  .helper-nomargin {
    padding-top: 0;
  }

  .contact-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-small);

    a {
      color: var(--text-color-primary);
      text-decoration: none;
    }
  }

  address {
    margin: 0;
  }

  main,
  section {
    width: 100%;
    padding: 40px;
  }

  header {
    .header-text {
      background: url('../images/logos/fence.webp') var(--background-inverse);
      background-position: bottom -60px right 80px;
      font-family: impact, fantasy, system-ui;
      font-size: var(--font-size-elephant);
      font-style: italic;
      text-shadow: var(--text-shadow-white);
      padding: var(--spacing-medium);
      margin-bottom: 0;

      a {
        color: var(--text-color-primary);
        text-decoration: none;
      }
    }

    .contact {
      display: flex;
      justify-content: space-between;
      padding: var(--spacing-default);
      gap: var(--spacing-small);
    }
  }

  menu {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0;

    nav {
      background: var(--background-primary);
      border-bottom: 4px solid var(--background-accent);

      ul {
        margin: 0;
        padding: 0;
      }

      li {
        display: inline-block;

        a {
          display: block;
          color: var(--background-inverse);
          text-decoration: none;
          text-transform: uppercase;
          padding: 15px 30px;
        }

        a:hover {
          color: var(--background-primary);
          background: var(--background-accent);
        }
      }
    }
  }

  .carousel {
    padding: 0 40px;

    h5 {
      font-size: var(--font-size-elephant);
      color: var(--text-color-primary);
      text-shadow: var(--text-shadow-white);
    }
  }

  .testimonials {

    .list {
      display: flex;
      gap: 40px;
      flex-wrap: wrap;
    }

    .testimonial {
      display: flex;
      border: 2px solid var(--background-accent);
      padding: var(--spacing-default);
      gap: var(--spacing-default);
      flex-direction: row;

      img {
        height: 100px;
      }

      .byline {
        font-size: var(--font-size-smallest);
        font-weight: var(--font-weight-normal);
      }
    }

  }

  .gallery {
    .grid {
      background: var(--background-primary);
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      padding: calc(var(--spacing-default) * 2);
      gap: 10px;
    }

    .card {
      margin-bottom: var(--spacing-default);

      .card-text {
        font-size: var(--font-size-snail);
      }
    }
  }

  .services {
    display: grid;
    gap: calc(var(--spacing-default) * 2);
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: minmax(100px, auto);

    justify-content: center;


    a {
      font-size: var(--font-size-smallestest);
      color: var(--text-color-primary);
      font-weight: var(--font-weight-semibold);
      text-decoration: none;
      text-transform: uppercase;
    }

    img {
      border: 1px solid var(--background-primary);
      width: 100%;
    }
  }

  .references {
    .card-list {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .card {
      width: 18rem;
      margin-bottom: var(--spacing-default);
    }
  }

  .portfolio {
    .image-list {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      width: 100%;
      justify-content: center;
      gap: var(--spacing-default);

      .card {
        width: 18rem;
        margin-bottom: var(--spacing-default);
      }
    }
  }

  footer {
    color: var(--text-color-inverse);
    background: var(--background-primary);
    padding: var(--spacing-default);

    .contact {
      margin-bottom: var(--spacing-default);

      a {
        color: var(--text-color-inverse);
      }
    }

    .contact-item:first-child {
      margin-bottom: var(--spacing-small);
    }

  }

  @media (max-width: 768px) {
    .gallery .grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }

  @media (max-width: 600px) {
    .contact {
      flex-direction: column;
    }

    .carousel {
      padding: 0 var(--spacing-small);
    }

    .gallery .grid {
      grid-template-columns: repeat(1, 1fr);
    }
  }