.onb { display: grid; grid-template-rows: auto 1fr auto; gap: 24px; min-height: calc(100vh - 48px - env(safe-area-inset-bottom)); padding-top: max(16px, env(safe-area-inset-top)); }
.onb-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
/* Mesma marca com nome do topo, em tamanho maior; o nome acompanha a altura da logo */
.onb-brand { --marca-h: 112px; }
.onb-brand b, .is-offline .onb-brand b { display: grid; font-size: calc(var(--marca-h) * .2125); }
@media (max-width: 359px) { .onb-brand { --marca-h: 92px; } }
@media (min-width: 480px) { .onb-brand { --marca-h: 132px; } }
.onb-slide { display: grid; gap: 20px; align-content: center; animation: enter .35s var(--ease) both; }
.onb-art {
  background: var(--board-bg); border-radius: var(--r-lg); min-height: 220px; display: grid; place-items: center;
  position: relative; overflow: hidden; color: var(--board-accent); isolation: isolate;
}
.onb-art .route { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .45; z-index: -1; }
.onb-art .big { width: 96px; height: 96px; border-radius: 28px; background: var(--board-tile); display: grid; place-items: center; }
.onb-art .big svg { width: 52px; height: 52px; stroke-width: 1.5; }
.onb-slide h1 { font-size: clamp(1.75rem, 7vw, 2.25rem); }
.onb-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.onb-points li { display: flex; gap: 12px; align-items: center; font-weight: 600; }
.onb-points li .i { color: var(--verde); }
.onb-foot { display: grid; gap: 16px; }
.dots { display: flex; gap: 8px; justify-content: center; }
.dots span { width: 8px; height: 8px; border-radius: 99px; background: var(--line); transition: width .25s var(--ease), background .25s; }
.dots span.on { width: 28px; background: var(--primary); }
