.rep-hero { padding-top: clamp(7rem, 14vw, 10rem); }
.rep-totals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin: 3rem 0 1rem; padding: 0; }
.rep-total { border-top: 2px solid var(--coral); padding-top: 1rem; min-width: 0; }
.rep-total dt { font-size: .95rem; color: var(--muted); }
.rep-total dd { margin: .4rem 0 0; font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.1; overflow-wrap: anywhere; }
.rep-note { font-size: .85rem; color: var(--muted); }

.rep-bars { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; gap: 1.4rem; }
.rep-bar__head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; font-weight: 600; }
.rep-bar__track { height: 1.1rem; border-radius: 999px; background: rgba(20, 26, 92, .12); overflow: hidden; }
.rep-bar__fill { display: block; height: 100%; width: var(--v); border-radius: 999px; background: var(--coral); transform-origin: left; transition: transform .9s var(--ease); }
.rep-bar.reveal:not(.is-visible) .rep-bar__fill { transform: scaleX(0); }

.rep-year { display: flex; flex-direction: column; gap: 1rem; }
.rep-year__num { font-family: var(--font-serif); font-size: 3rem; margin: 0; font-style: italic; color: var(--accent-text); }
.rep-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.rep-docs a, .rep-legal__link {
  display: flex; justify-content: space-between; align-items: center; gap: .75rem;
  padding: .75rem 1rem; border: 1px solid var(--line); border-radius: .75rem; color: inherit; text-decoration: none;
}
.rep-docs a[aria-disabled="true"], .rep-legal__link[aria-disabled="true"] { opacity: .75; cursor: not-allowed; }
.rep-docs small { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--accent-text); white-space: nowrap; }

.rep-legal__list { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; }
.rep-legal__list li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; background: #fff; border-radius: 1rem; padding: 1.25rem 1.5rem; }
.rep-legal__list p { margin: .25rem 0 0; color: var(--muted); }

.rep-cta .btn { margin-top: 1.5rem; }

@media (max-width: 700px) { .rep-totals { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
  .rep-bar__fill { transition: none; }
  .rep-bar.reveal:not(.is-visible) .rep-bar__fill { transform: none; }
}
