/* ── topo da unidade ────────────────────────────────────── */
.u-hero { position: relative; border-bottom: 1px solid var(--ink-700); overflow: hidden; }
.u-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%;
              object-fit: cover; object-position: center 62%; opacity: 0.5; }
.u-hero__in { position: relative; padding-block: var(--s-5) var(--s-4);
              background: linear-gradient(to right,
                color-mix(in oklab, var(--ink-900) 92%, transparent) 30%,
                color-mix(in oklab, var(--ink-900) 55%, transparent)); }
.crumb { font-size: var(--step--1); color: var(--ink-400); margin-bottom: var(--s-2); }
.crumb a { color: var(--ink-200); }
.u-hero h1 { font-size: var(--step-3); }
.u-facts { display: grid; gap: var(--s-2) var(--s-4); margin-top: var(--s-3);
           grid-template-columns: repeat(auto-fit, minmax(13rem, auto));
           padding-top: var(--s-3); border-top: 1px solid var(--ink-600); }
.u-facts dt { font-size: var(--step--1); color: var(--ink-400); font-stretch: 105%;
              letter-spacing: 0.03em; margin-bottom: 0.2rem; }
.u-facts dd { margin: 0; font-size: var(--step-0); color: var(--ink-050); line-height: 1.45; }
.u-acts { display: flex; flex-wrap: wrap; gap: var(--s-1); margin-top: var(--s-3); }

/* ── grade em tabela de verdade ─────────────────────────── */
.grade + .grade { margin-top: var(--s-5); }
.grade__head { display: flex; flex-wrap: wrap; align-items: baseline;
               justify-content: space-between; gap: var(--s-2); margin-bottom: var(--s-3); }
.grade__note { font-size: var(--step--1); color: var(--ink-400); }

.tbl-scroll { overflow-x: auto; border: 1px solid var(--ink-700);
              scrollbar-color: var(--ink-600) transparent; }
table.grade__tbl { border-collapse: collapse; width: 100%; min-width: 46rem;
                   font-size: var(--step--1); }
.grade__tbl caption { text-align: left; padding: var(--s-2); color: var(--ink-400);
                      font-size: var(--step--1); line-height: 1.5; }
.grade__tbl th, .grade__tbl td {
  border-bottom: 1px solid var(--ink-700);
  border-right: 1px solid color-mix(in oklab, var(--ink-700) 60%, transparent);
  padding: var(--s-2) var(--s-1); text-align: left; vertical-align: top; line-height: 1.45;
}
.grade__tbl thead th { background: var(--ink-800); color: var(--ink-050);
                       font-weight: 700; font-stretch: 100%; letter-spacing: 0.04em;
                       white-space: nowrap; position: sticky; top: 0; z-index: 2; }
.grade__tbl tbody th {
  background: var(--ink-800); color: var(--ink-050); font-weight: 700;
  font-variant-numeric: tabular-nums; white-space: nowrap;
  position: sticky; left: 0; z-index: 1; min-width: 5.5rem;
}
.grade__tbl td:empty::after { content: '·'; color: var(--ink-600); }
.aula { display: block; color: var(--ink-050); font-weight: 600; }
.aula__prof { display: block; color: var(--ink-400); }
.aula__dur { color: var(--brand-dim); font-variant-numeric: tabular-nums; }

/* ── blocos de natação ──────────────────────────────────── */
.nat { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.nat__b { border: 1px solid var(--ink-700); padding: var(--s-3); }
.nat__b h4 { color: var(--brand); margin-bottom: var(--s-1); }
.nat__b ul { list-style: none; margin: 0; padding: 0; }
.nat__b li { padding-block: 0.65rem; font-size: var(--step--1); line-height: 1.5;
             border-bottom: 1px solid color-mix(in oklab, var(--ink-700) 55%, transparent); }
.nat__b li:last-child { border-bottom: 0; }
.nat__b b { color: var(--ink-050); font-variant-numeric: tabular-nums; }

/* ── galeria da unidade ─────────────────────────────────── */
.u-gal { display: grid; gap: 2px; grid-template-columns: repeat(3, 1fr); margin-top: var(--s-4); }
.u-gal img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 60%; }
@media (max-width: 640px) { .u-gal { grid-template-columns: repeat(2, 1fr); } }
