/* RPA · Claims. Hairline-ruled columns, not cards. Shared atoms (.rpa-plate, .rpa-display,
   .rpa-link-arrow) are styled in the theme; this file sets layout and sizes only.

   < 640px   stacked: number, title, text
   640–999   ruled rows: number | title | text
   ≥ 1000    ruled columns with vertical hairlines */

.rpa-claims {
  --_rule: var(--rpa-c-rule, var(--rpa-rule));
  --_rule-strong: var(--rpa-c-rule-strong, var(--rpa-rule-strong));
  --_muted: var(--rpa-c-muted, var(--rpa-slate));
  --_pad: clamp(1.5rem, 1rem + 2vw, 2.75rem);
}

.rpa-claims__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin: 0;
  padding: 0;
  list-style: none;
}

.rpa-claims__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 0.75rem;
  margin: 0;
  padding-block: var(--_pad);
  border-block-start: 1px solid var(--_rule);
}
.rpa-claims__item:first-child { border-block-start-color: var(--_rule-strong); }
.rpa-claims__item:last-child { border-block-end: 1px solid var(--_rule); }

.rpa-claims__number { display: block; }

.rpa-claims .rpa-claims__title {
  margin: 0;
  font-size: var(--rpa-step-2);
  line-height: 1.12;
  text-wrap: balance;
}

.rpa-claims .rpa-claims__text {
  margin: 0;
  max-width: 38em;
  color: var(--_muted);
  text-wrap: pretty;
}

.rpa-claims__copy { display: grid; justify-items: start; }
.rpa-claims__link { margin-block-start: 1.25rem; }

@media (min-width: 640px) and (max-width: 999.98px) {
  .rpa-claims__item {
    grid-template-columns: 3.5rem minmax(0, 0.8fr) minmax(0, 1.2fr);
    column-gap: var(--rpa-gap);
    align-items: baseline;
  }
  .rpa-claims__title:first-child { grid-column: 2; }
  .rpa-claims__copy { grid-column: 3; }
}

@media (min-width: 1000px) {
  .rpa-claims--cols-2 .rpa-claims__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rpa-claims--cols-3 .rpa-claims__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rpa-claims--cols-4 .rpa-claims__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  /* Each claim spans three shared rows (number / title / copy), so titles and copy line up
     across columns whatever their length — and whether or not a number is set. */
  .rpa-claims__item {
    grid-row: span 3;
    grid-template-rows: subgrid;
    gap: 0;
    padding-block: 1.25rem var(--_pad);
    padding-inline: var(--_pad);
    border-block-start: 1px solid var(--_rule-strong);
    border-block-end: 0;
    border-inline-start: 1px solid var(--_rule);
  }
  .rpa-claims__item:last-child { border-block-end: 0; }

  /* First in each row sits flush on the page margin, with no leading hairline. */
  .rpa-claims--cols-1 .rpa-claims__item,
  .rpa-claims--cols-2 .rpa-claims__item:nth-child(2n + 1),
  .rpa-claims--cols-3 .rpa-claims__item:nth-child(3n + 1),
  .rpa-claims--cols-4 .rpa-claims__item:nth-child(4n + 1) {
    padding-inline-start: 0;
    border-inline-start: 0;
  }

  /* Enough air for the number to read as a plate mark, not so much that it detaches from its title. */
  .rpa-claims__number { grid-row: 1; margin-block-end: clamp(1.75rem, 1rem + 2vw, 3rem); }
  .rpa-claims .rpa-claims__title { grid-row: 2; margin-block-end: 1rem; }
  .rpa-claims__copy { grid-row: 3; align-content: start; }
  .rpa-claims--cols-4 .rpa-claims__item { padding-inline: calc(var(--_pad) * 0.7); }
  .rpa-claims--cols-4 .rpa-claims__item:nth-child(4n + 1) { padding-inline-start: 0; }
}
