/* Novidades (/novidades, /en/news). Owner: page-casa. Uses the shell's .caixa (the menu's rule box, the date
   cutting the top rule), .selo, .foto and .ligacao; adds only the layout of an entry. No tokens redefined. */

.novidades__topo { padding-bottom: var(--space-xl); }
.novidades__topo .lead { margin-top: var(--space-m); }
.novidades__topo .onda { margin-top: var(--space-xl); }

/* the list keeps the title's left edge and stops at 62rem */
.novidades__lista, .novidades__vazio { max-width: 62rem; }

/* entries: one column, newest first; the gap leaves room for the date and the seal of the next box */
.novidades__lista { display: grid; row-gap: clamp(var(--space-2xl), 5vw + 24px, var(--space-3xl)); }

.novidade { display: grid; row-gap: var(--space-l); padding-top: var(--space-xl); }
.novidade .caixa__titulo time { font-variant-numeric: var(--numeric); }
/* on a narrow phone the longest date («28 de fevereiro de 2027») stays clear of the seal */
@media (max-width: 29.99em) { .novidade .caixa__titulo { font-size: var(--step--1); letter-spacing: .04em; } }
.novidade__foto { width: 100%; }
.novidade__foto img { aspect-ratio: 4 / 5; }
.novidade__texto { min-width: 0; }
.novidade__texto .h2 { margin-bottom: var(--space-s); }
.novidade__corpo { font-size: var(--step-1); line-height: 1.5; max-width: 32em; }
.novidade__texto .nota { margin-top: var(--space-s); max-width: 40em; }
/* a long title word breaks instead of being cut by the line mask */
.novidade__texto .h2 .ln > span { max-width: 100%; overflow-wrap: anywhere; hyphens: auto; }
/* one link per line; inside it the arrow stays after the last word when the label wraps on a phone,
   and the padding makes the 44 px touch area */
.novidade__acoes { display: grid; justify-items: start; row-gap: var(--space-3xs); margin-top: var(--space-xs); }
.novidade__acoes .ligacao { display: block; min-height: 0; padding-block: 10px; white-space: normal; line-height: 1.4; }
.novidade__acoes .ligacao .ico { margin-left: var(--space-2xs); }

/* from 48em the photo stands left at the reels' size (360 px at most, here 300) and the text sits beside it */
@media (min-width: 48em) {
  .novidade { grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); column-gap: var(--space-xl); align-items: center; padding: var(--space-xl); }
  .novidade--sem-foto { grid-template-columns: minmax(0, 1fr); }
}

/* the slot for the next announcement: the same box, no photo, no seal */
.novidades__seguir { margin-top: clamp(var(--space-2xl), 5vw + 24px, var(--space-3xl)); max-width: 40rem; padding-top: var(--space-xl); }

/* on a phone the shell pulls a box in to leave room for its corner seal (.caixa:has(> .selo--td)); every box on this
   page takes the same margin, with or without a seal, so their right edges line up whatever the JSON holds */
.novidade, .novidades__seguir { margin-right: max(0px, calc(var(--seal) * 0.4 - var(--space-gutter) + 4px)); }
.novidades__seguir p { color: var(--color-text-muted); max-width: 34em; }
.novidades__seguir .ligacao { margin-top: var(--space-xs); }

/* empty state: no entries in the JSON */
.novidades__vazio { display: grid; justify-items: start; row-gap: var(--space-s); max-width: 34em; }

/* the footer brings its own wave and section space: the last section does not add a second one */
.novidades__corpo { padding-bottom: 0; }
