/* ==========================================================================
   LUMINA EUROPE - CONSORTIUM PARTNERS SECTION STYLES
   ========================================================================== */

.consortium-lead-banner {
  background-color: var(--color-surface);
  border: 1px solid var(--color-border-hairline);
  border-radius: var(--radius-md);
  padding: 1.5rem 2rem;
  margin-bottom: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1.5rem;
  box-shadow: var(--shadow-xs);
}

.coordinator-info {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.coordinator-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-sm);
  background-color: var(--color-cyan-100);
  color: var(--color-cyan-700);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.1rem;
}

.coordinator-text h4 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-navy-900);
}

.coordinator-text p {
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

/* ==========================================================================
   CONSORTIUM PARTNERS LOGO SHOWCASE
   Optical sizing & visual weight equalization for heterogeneous logo shapes
   ========================================================================== */

.partners-logos-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
  margin-top: 2rem;
}

@media (max-width: 1024px) {
  .partners-logos-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.125rem;
  }
}

@media (max-width: 640px) {
  .partners-logos-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.875rem;
  }
}

.partner-logo-card {
  background-color: #FFFFFF;
  border: 1px solid var(--color-border-hairline);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem;
  height: 112px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
}

.partner-logo-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px -6px rgba(15, 23, 42, 0.08), 0 4px 8px -4px rgba(15, 23, 42, 0.04);
  border-color: var(--color-cobalt-200);
}

.partner-logo-card:focus-visible {
  outline: 2px solid var(--color-cobalt-600);
  outline-offset: 3px;
}

.partner-logo-card.is-coordinator {
  border-color: rgba(6, 182, 212, 0.35);
  background: linear-gradient(180deg, #F0F9FF 0%, #FFFFFF 55%);
}

.partner-logo-card.is-coordinator:hover {
  border-color: var(--color-cyan-500);
  box-shadow: 0 12px 24px -6px rgba(6, 182, 212, 0.15), 0 4px 8px -4px rgba(15, 23, 42, 0.04);
}

.partner-logo-card.is-lumina {
  border-color: rgba(245, 158, 11, 0.35);
  background: linear-gradient(180deg, #FFFBEB 0%, #FFFFFF 55%);
}

.partner-logo-card.is-lumina:hover {
  border-color: var(--color-gold-500);
  box-shadow: 0 12px 24px -6px rgba(245, 158, 11, 0.15), 0 4px 8px -4px rgba(15, 23, 42, 0.04);
}

/* Subtle corner country badge */
.partner-card-badge {
  position: absolute;
  top: 0.45rem;
  right: 0.55rem;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  background-color: var(--color-bg-subtle);
  border: 1px solid var(--color-border-hairline);
  padding: 0.15rem 0.45rem;
  border-radius: var(--radius-xs);
  pointer-events: none;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.partner-logo-card:hover .partner-card-badge {
  color: var(--color-cobalt-700);
  border-color: var(--color-cobalt-100);
}

.partner-card-badge.coordinator-badge {
  color: var(--color-cyan-700);
  background-color: var(--color-cyan-50);
  border-color: var(--color-cyan-100);
}

.partner-card-badge.lumina-badge {
  color: var(--color-gold-700);
  background-color: var(--color-gold-50);
  border-color: var(--color-gold-100);
}

/* Partner Logo Image Base */
.partner-logo-img {
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform var(--transition-fast);
  display: block;
}

.partner-logo-card:hover .partner-logo-img {
  transform: scale(1.04);
}

/* ==========================================================================
   OPTICAL SIZING CLASSES
   Calibrated per logo shape to occupy an identical visual surface footprint
   ========================================================================== */

/* Near-square (HTS 1.15:1): constrained height so visual mass doesn't overpower */
.logo-shape-square {
  max-height: 64px;
  max-width: 95px;
}

/* Compact rectangular (CST 1.64:1) */
.logo-shape-compact {
  max-height: 58px;
  max-width: 115px;
}

/* Standard horizontal (Distretto, UniPa, PRIG, MV, MMA ~2.0:1 to 2.5:1) */
.logo-shape-standard {
  max-height: 50px;
  max-width: 155px;
}

/* Wide (Lumina 2.92:1, CeHA 4.36:1) */
.logo-shape-wide {
  max-height: 42px;
  max-width: 175px;
}

/* Ultra-wide panoramic (TIC Salut Social 7.69:1): wide bounds for crisp legibility */
.logo-shape-panoramic {
  max-height: 34px;
  max-width: 215px;
  width: 88%;
}
