/* =========================================================
   COMPANIES ARCHIVE
========================================================= */

.companies-archive {
  background: var(--ntp-white);
}

.companies-directory {
  position: relative;
  overflow: hidden;

  background-color: var(--ntp-white);
  background-image: url("../../images/ciljevi_background.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
}

.companies-directory .container {
  position: relative;
  z-index: 2;
}

/* =========================================================
   MAIN FILTER
   Incubatees / Alumni
========================================================= */

.companies-main-filter {
  display: flex;
  align-items: center;

  gap: 34px;

  margin-bottom: 58px;
}

.companies-main-filter__button {
  position: relative;

  padding: 0;

  border: 0;

  background: transparent;

  color: var(--ntp-black);

  font-family: var(--ntp-font-base);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;

  letter-spacing: 0.08em;
  text-transform: uppercase;

  cursor: pointer;

  transition: color var(--ntp-transition);
}

.companies-main-filter__button:hover,
.companies-main-filter__button.is-active {
  color: var(--ntp-blue);
}

.companies-main-filter__button.is-active::after {
  content: "";

  position: absolute;

  left: 50%;
  bottom: -14px;

  width: 5px;
  height: 5px;

  border-radius: 50%;

  background: var(--ntp-blue);

  transform: translateX(-50%);
}

/* =========================================================
   CHILD FILTER
========================================================= */

.companies-child-filter {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 14px;

  min-height: 36px;

  margin-bottom: 26px;
}

.companies-child-filter__button {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  min-width: 108px;

  padding: 7px 18px;

  border: 1px solid var(--ntp-blue);
  border-radius: var(--ntp-radius-pill);

  background: var(--ntp-white);

  color: var(--ntp-blue);

  font-family: var(--ntp-font-base);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;

  white-space: nowrap;

  cursor: pointer;

  transition:
    background-color var(--ntp-transition),
    color var(--ntp-transition),
    border-color var(--ntp-transition);
}

.companies-child-filter__button:hover,
.companies-child-filter__button.is-active {
  border-color: var(--ntp-blue);

  background: var(--ntp-blue);

  color: var(--ntp-white);
}

/* =========================================================
   MAIN LAYOUT
========================================================= */

.companies-directory__layout {
  display: grid;

  grid-template-columns:
    minmax(240px, 290px)
    minmax(0, 1fr);

  align-items: start;

  gap: 70px;
}

/* =========================================================
   INTRO
========================================================= */

.companies-directory__intro {
  position: sticky;

  top: 120px;

  max-width: 290px;
}

.companies-directory__intro .section-eyebrow {
  margin-bottom: 20px;
}

.companies-directory__title {
  color: var(--ntp-black);

  font-family: var(--ntp-font-title);

  font-size: 48px;
  font-weight: 400;
  line-height: 0.98;
}

.companies-directory__title > * {
  margin: 0;
}

.companies-directory__title h1,
.companies-directory__title h2,
.companies-directory__title h3,
.companies-directory__title p {
  margin: 0;
  padding: 0;

  font: inherit;
  line-height: inherit;
}

.companies-directory__title strong {
  color: var(--ntp-blue);

  font-weight: 700;
}

.companies-directory__text {
  max-width: 280px;

  margin-top: 26px;

  color: var(--ntp-text-body);

  font-family: var(--ntp-font-base);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
}

.companies-directory__text p {
  margin: 0;
}

.companies-directory__text p + p {
  margin-top: 14px;
}

/* =========================================================
   CONTENT
========================================================= */

.companies-directory__content {
  min-width: 0;
}

/* =========================================================
   GRID
========================================================= */

.companies-grid {
  display: grid;

  grid-template-columns: repeat(3, minmax(0, 1fr));

  gap: 28px;

  transition: opacity var(--ntp-transition);
}

/* =========================================================
   COMPANY CARD
========================================================= */

.company-card {
  display: flex;

  min-width: 0;
  min-height: 100%;

  flex-direction: column;

  background: #00aeef;
  background: linear-gradient(
    180deg,
    rgba(0, 174, 239, 0.2) 0%,
    rgba(0, 174, 239, 0) 100%
  );

  box-shadow: 0 2px 14px rgba(0, 31, 44, 0.035);

  transition:
    transform var(--ntp-transition),
    box-shadow var(--ntp-transition);
}

.company-card:hover {
  transform: translateY(-4px);

  box-shadow: var(--ntp-shadow-card-hover);
}

/* =========================================================
   CARD LOGO AREA
========================================================= */

.company-card__logo {
  display: flex;

  min-height: 210px;

  align-items: center;
  justify-content: center;

  padding: 34px;
}

.company-card__logo img {
  display: block;

  width: auto;
  height: auto;

  max-width: 78%;
  max-height: 120px;

  object-fit: contain;
}

.company-card__logo-fallback {
  display: flex;

  width: 95px;
  height: 95px;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: var(--ntp-white);

  color: var(--ntp-blue);

  font-family: var(--ntp-font-title);
  font-size: 48px;
  font-weight: 700;

  box-shadow: var(--ntp-shadow-card);
}

/* =========================================================
   CARD BODY
========================================================= */

.company-card__body {
  display: flex;

  flex: 1;

  flex-direction: column;

  min-height: 225px;

  padding: 24px 26px 25px;
}

.company-card__title {
  margin: 0 0 4px;

  color: var(--ntp-black);

  font-family: var(--ntp-font-base);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

.company-card__tagline {
  display: block;

  margin-bottom: 20px;

  color: var(--ntp-blue);

  font-family: var(--ntp-font-base);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}

.company-card__description {
  display: -webkit-box;

  overflow: hidden;

  margin: 0 0 24px;

  color: var(--ntp-text-body);

  font-family: var(--ntp-font-base);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.65;

  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}

.company-card__link {
  display: inline-flex;

  align-items: center;

  gap: 9px;

  align-self: flex-end;

  margin-top: auto;

  color: var(--ntp-blue);

  font-family: var(--ntp-font-base);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;

  text-decoration: none;

  transition:
    gap var(--ntp-transition),
    color var(--ntp-transition);
}

.company-card__link:hover {
  gap: 13px;

  color: var(--ntp-blue-dark);
}

/* =========================================================
   EMPTY STATE
========================================================= */

.companies-empty {
  grid-column: 1 / -1;

  margin: 0;

  padding: 50px 20px;

  text-align: center;

  color: var(--ntp-text-body);

  font-size: var(--ntp-fs-body);
}

/* =========================================================
   AJAX LOADING
========================================================= */

.companies-grid.is-loading {
  opacity: 0.4;

  pointer-events: none;
}

/* =========================================================
   PAGINATION
========================================================= */

.companies-pagination {
  margin-top: 54px;
}

.companies-pagination:empty {
  display: none;
}

.companies-pagination__nav {
  display: flex;

  align-items: center;
  justify-content: center;

  gap: 8px;
}

.companies-pagination__button {
  display: inline-flex;

  width: 40px;
  height: 40px;

  align-items: center;
  justify-content: center;

  padding: 0;

  border: 1px solid var(--ntp-border);
  border-radius: 50%;

  background: var(--ntp-white);

  color: var(--ntp-black);

  font-family: var(--ntp-font-base);
  font-size: 13px;
  font-weight: 700;

  cursor: pointer;

  transition:
    border-color var(--ntp-transition),
    background-color var(--ntp-transition),
    color var(--ntp-transition);
}

.companies-pagination__button:hover,
.companies-pagination__button.is-active {
  border-color: var(--ntp-blue);

  background: var(--ntp-blue);

  color: var(--ntp-white);
}

.companies-pagination__dots {
  display: inline-flex;

  min-width: 26px;

  align-items: center;
  justify-content: center;

  color: var(--ntp-text-body);
}

/* =========================================================
   LARGE DESKTOP
========================================================= */

@media (min-width: 1440px) {
  .companies-directory__layout {
    grid-template-columns:
      300px
      minmax(0, 1fr);

    gap: 80px;
  }

  .companies-grid {
    gap: 30px;
  }

  .company-card__logo {
    min-height: 230px;
  }

  .company-card__body {
    min-height: 235px;

    padding: 26px 28px 28px;
  }
}

/* =========================================================
   <= 1280
========================================================= */

@media (max-width: 1280px) {
  .companies-directory__layout {
    grid-template-columns:
      250px
      minmax(0, 1fr);

    gap: 45px;
  }

  .companies-grid {
    gap: 20px;
  }

  .companies-directory__title {
    font-size: 42px;
  }

  .company-card__logo {
    min-height: 185px;

    padding: 26px;
  }
}

/* =========================================================
   TABLET LANDSCAPE
========================================================= */

@media (max-width: 1100px) {
  .companies-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {
  .companies-directory {
    background-size: auto 55%;
    background-position: center bottom;
  }

  .companies-main-filter {
    margin-bottom: 40px;
  }

  .companies-child-filter {
    justify-content: flex-start;

    margin-bottom: 35px;
  }

  .companies-directory__layout {
    grid-template-columns: 1fr;

    gap: 45px;
  }

  .companies-directory__intro {
    position: static;

    max-width: 620px;
  }

  .companies-directory__text {
    max-width: 620px;
  }

  .companies-directory__title {
    max-width: 460px;
  }
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {
  .companies-directory {
    background-size: auto 45%;
  }

  .companies-main-filter {
    gap: 24px;

    margin-bottom: 36px;

    overflow-x: auto;

    padding-bottom: 16px;

    scrollbar-width: none;
  }

  .companies-main-filter::-webkit-scrollbar {
    display: none;
  }

  .companies-main-filter__button {
    flex: 0 0 auto;

    font-size: 12px;
  }

  .companies-child-filter {
    justify-content: flex-start;

    gap: 10px;

    overflow-x: auto;

    padding-bottom: 8px;

    scrollbar-width: none;
  }

  .companies-child-filter::-webkit-scrollbar {
    display: none;
  }

  .companies-child-filter__button {
    flex: 0 0 auto;

    min-width: auto;

    padding: 8px 16px;
  }

  .companies-directory__layout {
    gap: 36px;
  }

  .companies-directory__title {
    font-size: 36px;
  }

  .companies-directory__text {
    margin-top: 20px;

    font-size: 14px;
  }

  .companies-grid {
    grid-template-columns: 1fr;

    gap: 24px;
  }

  .company-card__logo {
    min-height: 200px;
  }

  .company-card__body {
    min-height: 210px;

    padding: 22px 22px 24px;
  }

  .companies-pagination {
    margin-top: 40px;
  }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {
  .companies-directory__title {
    font-size: 32px;
  }

  .companies-main-filter {
    gap: 20px;
  }

  .company-card__logo {
    min-height: 180px;

    padding: 24px;
  }

  .company-card__logo img {
    max-width: 75%;
    max-height: 105px;
  }

  .company-card__body {
    min-height: auto;
  }

  .companies-pagination__button {
    width: 36px;
    height: 36px;
  }
}
