footer {
  --footer-bg: var(--primary-variations-hover);
  --footer-heading-color: var(--tertiary-color);
  --footer-text-color: var(--color-neutral-1000);

  background-color: var(--footer-bg);
  position: relative;
  z-index: 1;

  .footer {
    padding: var(--sizing-xl) var(--spacing-l) var(--spacing-l);

    @media (width >= 768px) and (width < 1024px) {
      padding: 30px var(--spacing-l);
    }

    @media (width >= 1024px) {
      padding: var(--spacing-large) 56px;
    }
  }
}

footer .default-content-wrapper :is(h1, h2, h3, h4, h5, h6),
footer .default-content-wrapper p,
footer .columns-wrapper p,
footer .row {
  margin: var(--spacing-none);
  padding: var(--spacing-none);
}

footer .default-content-wrapper h6 {
  display: none;
}

footer .footer-top-section {
  display: none;
}

footer .footer__columns {
  display: block;
}

.footer__link-grid-container .link-column-container {
  .link-column-wrapper {
    @media (width < 768px) {
      padding-right: var(--spacing-none);
      padding-left: var(--spacing-none);
    }
  }

  &:first-child {
    .link-column-wrapper {
      @media (width < 768px) {
        padding-top: var(--spacing-none);
      }
    }
  }
}

.footer .footer__columns .column {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-big);
  border-bottom: 0.5px solid var(--gradient-color-dark-gray);

  @media (width < 768px) {
    padding-bottom: var(--spacing-none);
  }

  @media (width >= 768px) {
    flex: unset;
    border-bottom: unset;
  }

  .link-column-wrapper {
    padding: var(--sizing-m) var(--spacing-none);

    @media (width >= 768px) {
      padding: var(--spacing-none);
    }
  }
}

footer .footer__columns .column:first-child .link-column-wrapper {
  padding-top: var(--spacing-none);
}

footer .footer__columns .column:last-of-type {
  border-bottom: none;
}

footer .footer-bottom-section > * {
  flex-basis: 100%;
  flex-grow: 1;
}

footer .footer-bottom-section > *:last-child {
  border-top: 0.5px solid var(--gradient-color-dark-gray);
  padding: 19px var(--spacing-none) var(--spacing-none);

  @media (width >= 768px) {
    border: none;
    padding: var(--spacing-none);
  }
}

footer .footer__columns .column:not(:first-of-type) {
  padding-top: var(--sizing-m);

  @media (width < 768px) {
    padding-top: var(--spacing-none);
  }
}

footer .footer__columns .column__heading {
  color: var(--footer-heading-color);
  font: var(--text-medium-medium);
  line-height: var(--lh-medium);
  margin: var(--spacing-none);
  padding: var(--spacing-none);
  padding-bottom: var(--sizing-m);
  position: relative;
}

footer .columns-wrapper p {
  color: var(--tertiary-color);
  font: var(--text-medium-light);
  font-size: var(--fs-xxsmall);
  line-height: var(--lh-xsmall);
  font-style: italic;

  @media (width >= 768px) and (width < 1024px) {
    font-size: 6px;
    line-height: 8px;
  }
}

footer .footer__columns .default-content-wrapper {
  margin-top: var(--spacing-big);
  padding: var(--spacing-none);

  p,
  p a {
    text-decoration: none;
    display: inline;

    @media (width >= 768px) {
      display: block;
    }

    strong {
      display: block;
      font: var(--text-medium-regular);
      color: var(--tertiary-color);
      line-height: var(--lh-medium);
      margin-bottom: var(--spacing-xsmall);

      @media (width >= 768px) {
        line-height: var(--lh-large);
        margin: var(--spacing-none);
        padding: var(--spacing-none);
        letter-spacing: -0.14px;
        font-size: 8px;
      }

      @media (width >= 1024px) {
        font-size: var(--fs-small);
      }
    }
  }

  p.button-container {
    margin-right: 27px;

    @media (width >= 768px) and (width < 1024px) {
      margin: 2px 0;
    }

    @media (width >= 1024) {
      margin: var(--sizing-2xs) var(--spacing-none);
    }

    a {
      color: var(--tertiary-color);
      font: var(--text-medium-light);
      line-height: var(--lh-medium);
      cursor: pointer;
      padding: var(--spacing-none);

      @media (width >= 768px) {
        color: var(--footer-text-color);
      }

      @media (width >= 768px) and (width < 1024px) {
        font-size: 8px;
        font-weight: var(--fw-400);
        line-height: var(--lh-xsmall);
        letter-spacing: -0.083px;
      }

      @media (width >= 1024px) {
        font-size: var(--fs-small);
        line-height: var(--lh-large);
        letter-spacing: -0.14px;
      }
    }

    a:hover {
      color: var(--footer-text-color);
      text-decoration-line: underline;
    }
  }
}

/* stylelint-disable-next-line no-descending-specificity */
footer .link-grid-column.link-column-horizontal .links-container a {
  color: var(--footer-subtext-light-color);
  font: var(--text-medium-medium);
  font-size: var(--fs-xxsmall);
  line-height: 1.5rem;
  text-transform: uppercase;
  display: inline;
  text-decoration-line: underline;
  cursor: pointer;

  @media (width >= 768px) {
    color: var(--tertiary-color);
    text-decoration-line: none;
    font-size: 8px;
    font-weight: var(--fw-400);
    line-height: 12px;
  }

  @media (width >= 1024px) {
    font-size: var(--fs-small);
    font-weight: var(--fw-400);
    line-height: var(--lh-medium);
  }
}

/* stylelint-disable-next-line no-descending-specificity */
footer .link-grid-column.link-column-horizontal .links-container a:hover {
  text-decoration-line: underline;
}

footer .footer__columns .column-0 .column__heading {
  padding-top: var(--spacing-none);
}

footer .footer__columns .column.contact-section .column__heading {
  display: none;
}

footer .footer__columns li,
footer .link-grid-column.link-column-vertical .links-container li {
  color: var(--footer-text-color);
  font: var(--text-medium-regular);
  line-height: var(--lh-medium);
  min-height: unset;

  @media (width >= 768px) {
    line-height: 12.45px;
    font-size: var(--lh-xsmall);
  }

  @media (width >= 1024px) {
    line-height: 2.1rem;
  }
}

/* stylelint-disable-next-line no-descending-specificity */
footer .link-grid-column.link-column-vertical .links-container li a {
  color: var(--footer-text-color);
  font: var(--text-medium-regular);
  line-height: var(--lh-medium);
  min-height: unset;

  @media (width >= 768px) and (width < 1024px) {
    font-size: 8px;
    font-weight: var(--fw-400);
    line-height: 12.45px;
  }

  @media (width >= 1024px) {
    line-height: 2.1rem;
    font-size: var(--lh-xsmall);
  }
}

footer .link-grid-column.link-column-vertical .links-container li a:hover {
  color: var(--footer-text-color);
}

footer .footer__columns .column.contact-section {
  padding-top: var(--spacing-big);
  padding-bottom: var(--spacing-none);
  display: flex;
  flex-direction: column-reverse;

  @media (width >= 768px) {
    padding-top: var(--spacing-none);
    flex-direction: column;
    gap: var(--spacing-none);
  }
}

footer .footer__columns .column.contact-section .user__contact :is(h1, h2, h3, h4, h5, h6) {
  display: none;
}

footer .user__contact .user__contact__icons {
  justify-content: space-between;
  align-items: center;
}

footer .footer-bottom-section {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: var(--sizing-xl);
  padding-top: var(--sizing-m);

  @media (width >= 768px) {
    gap: 19px;
    padding-top: var(--spacing-none);
  }

  @media (width >= 1024px) {
    gap: var(--spacing-big);
  }
}

footer .footer-bottom-section .columns-wrapper .columns > div > *:first-child > *:last-child {
  display: none;
}

footer .footer-bottom-section .columns-wrapper .columns > div {
  display: flex;
  flex-direction: column;
  gap: var(--sizing-m);
  align-items: flex-start;

  @media (width >= 768px) {
    gap: var(--sizing-xl);
    flex-direction: row;
  }
}

footer .footer__columns .accordian-item {
  padding-bottom: var(--spacing-none);
}

footer .footer__columns .accordian-item--expanded {
  transition: all 0.2s ease-in-out;
}

footer .accordian-item::after {
  content: '';
  position: absolute;
  right: 0;
  height: 20px;
  width: 20px;
  transform: rotate(180deg);
  background: center / contain no-repeat url('/genuine-accessories/icons/down-arrow_footer.svg');
}

footer .footer-bottom-section .accordian-item::after {
  content: none;
}

footer .accordian-item--expanded::after {
  transform: rotate(0deg);
}

footer .accordian-content {
  overflow: hidden;
  visibility: hidden;
  height: 0;
  padding-top: var(--sizing-m);
  transition: all 0.2s ease-in-out;
}

footer .accordian-content--expanded {
  visibility: visible;
}

footer .accordian-content--expanded.links-container {
  padding-top: var(--sizing-s);
}

footer .link-grid-column.link-column-horizontal .link-column__heading {
  color: var(--tertiary-light-grey);
  font: var(--text-medium-semibold);
  line-height: 1.7rem;
  text-decoration-line: none;
  text-transform: uppercase;
  margin: var(--spacing-none);
  padding: var(--spacing-none) var(--spacing-none) var(--sizing-m);

  @media (width >= 768px) {
    color: var(--tertiary-color);
    padding-bottom: var(--spacing-none);
    font-size: 8px;
    font-weight: var(--fw-400);
    line-height: 12px;
  }

  @media (width >= 1024px) {
    font-size: var(--fs-small);
    font-weight: var(--fw-400);
    line-height: var(--lh-medium);
  }
}

footer .link-grid-column.link-column-horizontal .accordian-content {
  overflow: auto;
  visibility: visible;
  height: fit-content;
}

footer .footer-bottom-section .link-column-horizontal .links-container {
  gap: var(--sizing-m) var(--sizing-xl);

  @media (width >= 768px) {
    padding-top: var(--spacing-none);
    column-gap: 20px;
  }

  @media (width >= 1024px) {
    column-gap: 34px;
  }
}

.footer-center-section .contact-wrapper.collpsable.hide__section {
  height: auto !important;
}

footer .footer-center-section .default-content-wrapper .collpsable.hide__section:nth-child(5) {
  display: none;
}

.footer-wrapper {
  .contact-wrapper {
    @media (width >= 768px) and (width < 1024px) {
      padding-top: var(--sizing-s);
    }

    @media (width >= 1024px) {
      padding-top: var(--sizing-l);
    }

    .user__contact {
      display: block;
      width: 100%;

      @media (width >= 768px) and (width < 1024px) {
        width: fit-content;
      }

      @media (width >= 1024px) {
        width: 196px;
      }

      .user__contact-title {
        color: var(--tertiary-color);
        font: var(--text-medium-regular);
        line-height: var(--lh-large);
        letter-spacing: -0.14px;
        padding: var(--sizing-m);

        @media (width >= 768px) {
          padding: var(--spacing-none);
        }

        @media (width >= 768px) and (width < 1024px) {
          font-size: 8px;
          font-weight: var(--fw-400);
          line-height: 14.224px;
          letter-spacing: -0.083px;
        }

        @media (width >= 1024px) {
          font-size: var(--fs-small);
        }
      }

      .user__contact__icons {
        gap: inherit;
        align-items: center;

        @media (width >= 768px) {
          justify-content: space-between;
          gap: 10px;
          padding-top: 9px;
        }

        @media (width >= 1024px) {
          gap: unset;
          padding-top: var(--sizing-m);
        }

        .user__contact--icon {
          display: flex;
          flex-direction: row;
          scale: 1;
          width: 24px;
          height: 23.973px;
          padding: var(--spacing-none);

          @media (width >= 768px) and (width < 1024px) {
            width: 11.867px;
            height: 11.853px;
          }

          @media (width >= 1024px) {
            width: 20.023px;
            height: 20px;
          }

          img {
            width: 100%;
            height: 100%;
          }

          &[title='X'] {
            width: 18px;
            height: 17.98px;

            @media (width >= 768px) and (width < 1024px) {
              width: 11.867px;
              height: 11.853px;
            }

            @media (width >= 1024px) {
              width: 20.023px;
              height: 20px;
            }
          }

          &[title='LinkedIn'] {
            width: 25px;
            height: 24.972px;

            @media (width >= 768px) and (width < 1024px) {
              width: 11.867px;
              height: 11.853px;
            }

            @media (width >= 1024px) {
              width: 20.023px;
              height: 20px;
            }
          }
        }

        .user__contact--icon:hover {
          scale: 1.2;
        }
      }
    }
  }
}

@media (width >= 768px) {
  footer .default-content-wrapper {
    padding-bottom: var(--spacing-none);
  }

  footer .footer__columns .default-content-wrapper p {
    font-weight: var(--fw-400);
    line-height: 24px;
    letter-spacing: -0.14px;

    a {
      font-weight: inherit;
    }
  }

  footer .footer__columns .column__heading {
    font: var(--text-large-medium);
    font-size: var(--fs-xmedium);
    line-height: var(--lh-large);
    padding-bottom: var(--spacing-l);
    cursor: pointer;
  }

  footer .footer__columns .default-content-wrapper p strong {
    padding-bottom: 4px;
  }

  footer .footer-top-section {
    display: block;
    padding-bottom: var(--spacing-large);
  }

  footer .footer-top-section :is(h1, h2, h3, h4, h5, h6) {
    color: var(--footer-text-color);
    font-family: var(--type-base-font-family);
    font-size: 3.2rem;
    font-style: normal;
    font-weight: var(--fw-600);
    line-height: 4rem;
    letter-spacing: 0.96px;
    max-width: 505px;
  }

  footer .footer__columns {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: stretch;
  }

  footer .footer__columns--collapsed,
  footer .footer__columns--collapsed .column {
    transition: all 0.2s ease-in-out;
    padding: var(--spacing-none);
  }

  footer .user__contact .user__contact__icons a:hover {
    scale: 1.2;
    background-color: transparent;
  }

  footer .footer__columns .default-content-wrapper {
    margin: var(--spacing-none);
    border-bottom: 0;
  }

  footer .default-content-wrapper h6 {
    display: block;
    color: var(--footer-text-color);
    font-size: 1.4rem;
    line-height: 1.4rem;
    margin-top: 1.8rem;
  }

  footer .default-content-wrapper h6.hide__section {
    margin-top: 0;
  }

  footer .footer__columns .column {
    border-bottom: none;
    display: flex;
    flex-direction: column;
    gap: 0 16px;
  }

  footer .footer__columns .column:not(:first-of-type) {
    padding-top: var(--spacing-none);
  }

  footer .accordian-item::after,
  footer .accordian-item--expanded::after {
    display: none;
  }

  footer .footer__columns .default-content-wrapper p a.button:hover {
    color: var(--footer-text-color);
  }

  footer .footer__columns .column.contact-section .column__heading,
  footer .footer__columns .column.contact-section .user__contact :is(h1, h2, h3, h4, h5, h6) {
    display: block;
  }

  footer .footer-bottom-section .columns-wrapper .columns > div > div {
    display: flex;
    flex-direction: column;
  }

  footer .footer-bottom-section .columns-wrapper .columns > div > * {
    flex-basis: 100%;
  }

  footer .footer-bottom-section .columns-wrapper .columns > div > div > *:last-of-type {
    margin-top: auto;
  }

  footer .footer-bottom-section .columns-wrapper .columns > div > *:first-child > *:last-child {
    display: block;
    margin-top: var(--sizing-m);
  }

  footer .footer-bottom-section .columns-wrapper .columns > .footer__two-column-section > div:first-of-type {
    flex-basis: 59%;
  }

  footer .footer-bottom-section .columns-wrapper .columns > .footer__two-column-section > div:last-of-type {
    flex-basis: 36%;
  }

  footer .footer__separator {
    height: 1px;
    width: 100%;
    background: var(--tertiary-color);
    position: relative;
    margin-top: 52px;
    margin-bottom: 52px;
  }

  footer .footer__separator.footer__separator--collapsed {
    margin-top: var(--sizing-s);
  }

  footer .footer__separator::after {
    content: '';
    position: absolute;
    height: 20px;
    width: 20px;
    background-color: var(--tertiary-light-grey);
    background-image: url('../../icons/footer-expand.svg');
    left: 50%;
    top: -10px;
    margin-left: -10px;
    cursor: pointer;
    scale: 1.2;
  }

  footer .footer__separator--collapsed::after {
    background-image: url('../../icons/footer-collapes.svg');
  }

  footer .collpsable {
    visibility: visible;
    opacity: 1;
    transition: height 0.4s ease;
  }

  footer .collpsable.hide__section {
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
  }

  .footer-center-section .contact-wrapper.collpsable.hide__section {
    height: 0 !important;
  }
}

@media (width >= 768px) and (width < 1024px) {
  footer .footer__columns .column__heading {
    padding-bottom: var(--sizing-s);
    font-size: 11px;
    font-weight: var(--fw-500);
    line-height: var(-lh-xsmall);
  }

  footer .accordian-content.links-container {
    padding-top: var(--spacing-none);
    gap: 7px;
  }

  footer .footer__columns .default-content-wrapper p {
    line-height: 14.224px;
    letter-spacing: -0.083px;
  }

  footer .footer-bottom-section .columns-wrapper .columns > div > *:first-child > *:last-child {
    margin-top: 9px;
  }

  footer .footer-bottom-section .columns-wrapper .columns > .footer__two-column-section > div:first-of-type {
    flex-basis: 70%;
  }

  footer .footer-bottom-section .columns-wrapper .columns > .footer__two-column-section > div:last-of-type {
    flex-basis: 30%;
  }

  footer .footer__separator {
    margin-top: 37px;
    margin-bottom: 37px;
  }

  footer .footer__separator::after {
    height: 14px;
    width: 14px;
    top: -7px;
    margin-left: -7px;
    background-size: 14px;
  }

  footer .link-grid-column.link-column-horizontal {
    flex-direction: row;
  }
}

@media (width >= 1920px) {
  footer .footer-bottom-section .columns-wrapper .columns > div {
    gap: 96px;
  }
}
