@layer components {
  @scope (.giants) {
    .giants__heading {
      font-size: clamp(1.9rem, 5vw, 3.5rem);
      line-height: 1;
      letter-spacing: -0.02em;
      text-transform: uppercase;
      margin: 0 0 1rem;
      max-inline-size: 20ch;
    }
    .giants__caveat {
      font-family: var(--font-mono);
      font-size: 0.72rem;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      opacity: 0.6;
      margin: 0 0 clamp(2rem, 4vw, 3rem);
    }
    .giants__caveat a {
      color: inherit;
      text-decoration: underline;
      text-decoration-color: currentColor;
      text-underline-offset: 3px;
      transition: text-decoration-thickness 120ms ease;
    }
    .giants__caveat a:hover { text-decoration-thickness: 2px; }

    .giants__row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 1px;
      background: rgba(244, 239, 227, 0.14);
      border: 1px solid rgba(244, 239, 227, 0.14);
      margin: 0;
      padding: 0;
      list-style: none;
    }
    @media (min-width: 640px) {
      .giants__row {
        grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
      }
    }
    /* 8 clubes cabem em 4×2 sem sobrar bloco vazio a partir de ~960px */
    @media (min-width: 960px) {
      .giants__row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    .giants__card {
      background: var(--ink);
      margin: 0;
      padding: clamp(1.5rem, 2.5vw, 1.85rem);
      display: flex;
      flex-direction: column;
      gap: 1.15rem;
      min-inline-size: 0;
      block-size: 100%;
    }
    .giants__card figcaption {
      display: flex;
      align-items: baseline;
      gap: 8px;
      min-inline-size: 0;
    }
    .giants__name {
      font-family: var(--font-display);
      font-weight: normal;
      font-size: clamp(1.15rem, 2.2vw, 1.5rem);
      text-transform: uppercase;
      letter-spacing: -0.01em;
      min-inline-size: 0;
      flex: 1 1 auto;
      overflow-wrap: break-word;
    }
    .giants__meta {
      font-family: var(--font-mono);
      font-size: 0.68rem;
      opacity: 0.5;
      flex: 0 0 auto;
    }

    .giants__waffle {
      display: grid;
      grid-template-columns: repeat(8, minmax(0, 1fr));
      grid-template-rows: repeat(5, minmax(0, 1fr));
      gap: 4px;
      aspect-ratio: 8 / 5;
      min-inline-size: 0;
    }
    .giants__cell {
      background: rgba(244, 239, 227, 0.22);
      min-block-size: 0;
      min-inline-size: 0;
    }
    .giants__cell[data-filled] {
      background: var(--gold);
    }

    .giants__foot {
      margin-block-start: auto;
    }
    .giants__attendance {
      font-weight: 900;
      font-size: clamp(1.4rem, 2.6vw, 1.85rem);
      font-variant-numeric: tabular-nums;
    }
    .giants__attendance small {
      font-family: var(--font-mono);
      font-size: 0.66rem;
      letter-spacing: 0.05em;
      opacity: 0.55;
      font-weight: 400;
    }
    .giants__division {
      display: block;
      font-family: var(--font-mono);
      font-size: 0.62rem;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      opacity: 0.5;
      margin-block-start: 3px;
    }
  }
}
