/* Partners Section - Luxury Affiliations & Publications */
.partners-section {
  position: relative;
  /* background-color: var(--color-card-bg); */
  border-radius: var(--radius-card-outer);
  padding: 3rem 2.5rem;
  margin-top: 2rem;
  /* margin-bottom: 2rem; */
  /* box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.65), 0 0 0 1px var(--color-card-border); */
  overflow: hidden;
  width: 100%;
  content-visibility: auto;
  contain-intrinsic-size: auto none auto 220px;
}

.partners-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  container-type: inline-size;
  container-name: partners;
}

/* Section Eyebrow Tag */
.partners-eyebrow {
  font-size: var(--text-xs);
  letter-spacing: 0;
  color: var(--color-text-subtle);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 2.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  transition: color var(--transition-normal);
}

/* Logos Flex Grid */
.partners-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 1.5rem;
  flex-wrap: wrap;
}

/* Modern :has() peer focus/hover dimming */
.partners-grid:has(.partner-item:hover) .partner-item:not(:hover),
.partners-grid:has(.partner-item:focus-visible) .partner-item:not(:focus-visible) {
  opacity: 0.45;
  transform: scale(0.96);
}

/* Individual Partner Link Card: Center Logo, Label Below */
.partner-item {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--color-text-muted);
  padding: 1.25rem 1.5rem;
  border-radius: 16px;
  border: 1px solid var(--color-partner-border);
  background-color: var(--color-partner-bg);
  opacity: 0.85;
  filter: grayscale(100%);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  transition: opacity var(--transition-fast), filter var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);
  flex: 1 1 140px;
  max-width: 190px;
  min-height: 110px;
  gap: 0.65rem;
  text-align: center;
}

.partner-icon,
.partner-item svg,
.partner-item img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}

.partner-label {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--color-text-primary);
  letter-spacing: 0;
  line-height: var(--leading-snug);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  transition: color var(--transition-normal);
}

.partner-item:hover {
  opacity: 1;
  filter: grayscale(0%);
  color: var(--color-text-primary);
  transform: translateY(-4px);
  border-color: var(--color-partner-hover-border);
  background-color: var(--color-partner-hover-bg);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
}

.partner-item:active {
  transform: scale(0.96);
}

.partner-item:hover svg,
.partner-item:hover img,
.partner-item:hover .partner-icon {
  transform: scale(1.08);
}

.partner-item:focus-visible {
  outline: 2px solid var(--color-accent-bronze-light);
  outline-offset: 3px;
  opacity: 1;
}

/* Responsive Media Queries */
@media (max-width: 1024px) {
  .partners-section {
    padding: 2.5rem 2rem;
  }

  .partners-grid {
    gap: 1.25rem;
  }

  .partner-item {
    flex: 1 1 120px;
    max-width: 160px;
  }
}

@media (max-width: 768px) {
  .partners-section {
    padding: 2rem 1.25rem;
    border-radius: 24px;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .partners-eyebrow {
    font-size: 0.625rem;
    margin-bottom: 1.75rem;
    letter-spacing: 0.18em;
  }

  .partners-grid {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    flex-wrap: wrap;
  }

  .partner-item {
    flex: 1 1 95px;
    max-width: 130px;
    min-height: 95px;
    padding: 0.9rem 0.65rem;
    gap: 0.5rem;
  }

  .partner-icon,
  .partner-item svg,
  .partner-item img {
    width: 38px;
    height: 38px;
  }

  .partner-label {
    font-size: 0.8125rem;
  }
}

@media (max-width: 420px) {
  .partners-grid {
    gap: 0.65rem;
  }

  .partner-item {
    flex: 1 1 85px;
    max-width: 105px;
    min-height: 88px;
    padding: 0.75rem 0.45rem;
  }

  .partner-icon,
  .partner-item svg,
  .partner-item img {
    width: 32px;
    height: 32px;
  }

  .partner-label {
    font-size: 0.75rem;
  }
}

/* Scroll-driven Fan-out Animations */
.partners-scroll-ready .partner-item {
  will-change: translate, opacity, scale;
  opacity: calc(0.5 + var(--partners-p, 0) * 0.35);
}

.partners-scroll-ready .partner-item:nth-child(1) {
  translate: calc((1 - var(--partners-p, 0)) * calc(-200% - 3rem)) 0;
  z-index: 1;
}

.partners-scroll-ready .partner-item:nth-child(2) {
  translate: calc((1 - var(--partners-p, 0)) * calc(-100% - 1.5rem)) 0;
  z-index: 2;
}

.partners-scroll-ready .partner-item:nth-child(3) {
  translate: 0 0;
  scale: calc(0.92 + var(--partners-p, 0) * 0.08);
  z-index: 3;
}

.partners-scroll-ready .partner-item:nth-child(4) {
  translate: calc((1 - var(--partners-p, 0)) * calc(100% + 1.5rem)) 0;
  z-index: 2;
}

.partners-scroll-ready .partner-item:nth-child(5) {
  translate: calc((1 - var(--partners-p, 0)) * calc(200% + 3rem)) 0;
  z-index: 1;
}

.partners-scroll-ready.is-completed .partner-item {
  will-change: auto;
  opacity: 0.85;
  translate: none;
  scale: none;
}

@media (max-width: 1024px) and (min-width: 769px) {
  .partners-scroll-ready .partner-item:nth-child(1) {
    translate: calc((1 - var(--partners-p, 0)) * calc(-200% - 2.5rem)) 0;
  }
  .partners-scroll-ready .partner-item:nth-child(2) {
    translate: calc((1 - var(--partners-p, 0)) * calc(-100% - 1.25rem)) 0;
  }
  .partners-scroll-ready .partner-item:nth-child(4) {
    translate: calc((1 - var(--partners-p, 0)) * calc(100% + 1.25rem)) 0;
  }
  .partners-scroll-ready .partner-item:nth-child(5) {
    translate: calc((1 - var(--partners-p, 0)) * calc(200% + 2.5rem)) 0;
  }
}

@media (max-width: 768px) {
  .partners-scroll-ready .partner-item:nth-child(1),
  .partners-scroll-ready .partner-item:nth-child(2),
  .partners-scroll-ready .partner-item:nth-child(4),
  .partners-scroll-ready .partner-item:nth-child(5) {
    translate: none;
  }
  .partners-scroll-ready .partner-item {
    opacity: calc(0.4 + var(--partners-p, 0) * 0.45);
    scale: calc(0.92 + var(--partners-p, 0) * 0.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  .partners-scroll-ready .partner-item {
    translate: none !important;
    scale: none !important;
    opacity: 0.85 !important;
  }
}


