/* ==========================================================================
   Component — Person Card (photo + name + rank badge + category tags)
   ========================================================================== */

.person-card {
  display: flex;
  flex-direction: column;
  width: 200px;
  text-decoration: none;
  color: var(--color-text);
  transition: transform var(--transition-fast);

  gap: var(--space-xs);

  &:hover {
    transform: translateY(-2px);
  }
}

.person-card__image {
  position: relative;
  width: 200px;
  height: 220px;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-border);

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.person-card__info {
  display: flex;
  align-items: baseline;
  gap: var(--space-sm);
  padding-inline: 2px;
  padding-block: var(--space-xs);
}

.person-card__rank {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--font-size-sm);
  flex-shrink: 0;
}

.person-card__name {
  font-size: var(--font-size-sm);
  font-weight: 600;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;

  a {
    text-decoration: none;
    color: var(--color-text);

    &:hover {
      color: var(--color-primary);
    }

    &:visited {
      color: var(--color-text);
    }
  }
}

.person-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  padding-block-start: var(--space-xs);
}

.person-card__tag {
  display: inline-block;
  padding: 2px var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: var(--font-size-xs);
  color: var(--color-text-muted);
  background: color-mix(in srgb, var(--color-bg) 80%, #fff);
}

/* --- Rankings Grid (used on home & country pages) --- */
.ranking {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  gap: var(--space-md);
}

/* Legacy compat: existing .person / .person-image / .person-info classes */
.person {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 200px;
  height: 275px;
}

.person-image {
  width: 200px;
  height: 220px;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-border);

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

.person-info {
  flex: 1;
  display: flex;
  align-items: center;

  a {
    flex: 1;
    margin: auto;
    padding-left: var(--space-xs);
    font-size: var(--font-size-sm);
  }
}

.person-number {
  font-weight: 700;
  font-size: var(--font-size-sm);
  color: var(--color-accent);
}

/* --- Person Image Frame (used by constrained_celebrity_image_tag helper) --- */
.person-image-frame {
  background: color-mix(in srgb, var(--color-text) 8%, var(--color-bg));
  border-radius: var(--radius-md);
  overflow: hidden;

  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
