/* Hero runtime overrides moved out of index.html */
.navbar-primary .navbar-brand {
  padding-top: 16px;
  padding-bottom: 16px;
}

.navbar-primary .navbar-brand .navbar-brand-item {
  height: 54px;
}

header.navbar-sticky-on.navbar-primary .navbar-brand {
  padding-top: 12px;
  padding-bottom: 12px;
}

header.navbar-sticky-on.navbar-primary .navbar-brand .navbar-brand-item {
  height: 48px;
}

@media (max-width: 991.98px) {
  .navbar-primary .navbar-brand {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .navbar-primary .navbar-brand .navbar-brand-item {
    height: 44px;
  }

  header.navbar-sticky-on.navbar-primary .navbar-brand .navbar-brand-item {
    height: 40px;
  }
}

.pattern-overlay-2 {
  height: auto;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  padding-top: max(var(--anchor-offset, 88px), clamp(1.25rem, 2.2vh, 2rem)) !important;
  padding-bottom: clamp(2rem, 5vh, 3.25rem) !important;
}

.pattern-overlay-2 > .container {
  position: relative;
  z-index: 2;
  min-height: inherit;
  display: flex;
  align-items: center;
}

.pattern-overlay-2 > .container > .row {
  width: 100%;
}

.pattern-overlay-2 .content-hero,
.pattern-overlay-2 .container .content-hero {
  max-width: 34rem;
  height: auto;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: clamp(1rem, 2.5vh, 2rem) !important;
  padding-bottom: clamp(1rem, 2.5vh, 2rem) !important;
}

.pattern-overlay-2 .display-5 {
  font-size: clamp(2.05rem, 4.2vw, 3.5rem);
  line-height: 1.12;
}

.pattern-overlay-2 > .position-absolute.bottom-0 {
  z-index: 1;
  pointer-events: none;
}

.unique-design-title {
  font-size: clamp(1.35rem, 2.05vw, 1.9rem);
  line-height: 1.1;
}

.unique-design-copy {
  font-size: clamp(1.16rem, 1.35vw, 1.5rem);
  line-height: 1.7;
}

.unique-design-copy strong {
  font-weight: 800;
}

@media (min-width: 992px) {
  .unique-design-row {
    align-items: stretch !important;
  }

  .unique-design-text-col {
    display: flex;
  }

  .unique-design-text-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    max-width: 30rem;
  }

  .unique-design-title {
    align-self: flex-start;
    margin-bottom: clamp(0.7rem, 1vw, 1.1rem) !important;
  }

  .unique-design-title {
    font-size: clamp(1.45rem, 2.25vw, 2.05rem);
  }

  .unique-design-copy {
    font-size: clamp(1.28rem, 1.8vw, 1.78rem);
    line-height: 1.6;
  }

  .unique-design-image-col {
    display: flex;
  }

  .unique-design-image-col img {
    width: 100%;
    height: 100%;
    min-height: clamp(260px, 25vw, 360px);
    object-fit: cover;
  }
}

.video-card-wrap {
  width: 100%;
  max-width: 500px;
}

.about-icon {
  font-size: 2.5rem;
}

.about-list {
  max-width: 320px;
}

section[aria-label="Our Team"] .team-item .team-avatar {
  width: min(100%, clamp(140px, 24vw, 260px));
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
  background: #d9d9d9;
}

section[aria-label="Our Team"] .team-item {
  overflow: visible;
}

section[aria-label="Our Team"] .team-item .team-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(100%) contrast(1.04) brightness(0.98);
}

section[aria-label="Our Team"] .team-item .team-avatar img[alt="Juan Olivares"] {
  filter: grayscale(100%) contrast(1.08) brightness(0.9);
}

section[aria-label="Our Team"] .team.team-overlay .team-item .team-avatar:before,
section[aria-label="Our Team"] .team.team-overlay .team-item:hover .team-avatar:before {
  opacity: 0 !important;
  visibility: hidden !important;
  background: transparent !important;
}

@media (min-width: 768px) {
  .timeline-horizontal .timeline-item .timeline-badge {
    width: 70px;
    height: 70px;
    line-height: 62px;
    left: 38px;
    font-size: 0.82rem;
    font-weight: 700;
  }
}

/* Publications cards: keep a consistent visual height even with variable text lengths */
#publications-list .tiny-slider-inner {
  display: flex;
  align-items: stretch;
}

#publications-list .tiny-slider-inner > .item {
  display: flex;
  height: auto;
}

#publications-list .tiny-slider-inner > .item > .card {
  width: 100%;
}

#publications .card .card-body h3 {
  min-height: calc(1.25em * 3);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  line-clamp: 3;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

#publications .card .card-body p.mb-4 {
  min-height: calc(1.6em * 3);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  line-clamp: 3;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

@media (max-width: 991.98px) {
  .pattern-overlay-2 {
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
    padding-top: calc(var(--anchor-offset, 84px) + clamp(0.75rem, 2.2vh, 1.25rem)) !important;
    padding-bottom: clamp(1.75rem, 4vh, 2.75rem) !important;
  }

  .pattern-overlay-2 > .container {
    min-height: calc(100dvh - var(--anchor-offset, 84px));
    align-items: center;
  }

  .pattern-overlay-2 .content-hero,
  .pattern-overlay-2 .container .content-hero {
    max-width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: clamp(0.75rem, 1.8vh, 1.25rem) !important;
    transform: translateY(clamp(0.35rem, 1.8vh, 1rem));
  }

  section[aria-label="Our Team"] .col-md-6.text-center {
    margin-top: 1.75rem;
  }
}

@media (max-width: 575.98px) {
  .pattern-overlay-2 > .container {
    min-height: calc(100dvh - var(--anchor-offset, 76px));
  }

  .pattern-overlay-2 .display-5 {
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }

  .unique-design-copy {
    font-size: clamp(1.07rem, 4.3vw, 1.22rem);
    line-height: 1.6;
  }

  section[aria-label="Our Team"] .col-md-6.text-center {
    margin-top: 2.25rem;
  }
}

