.hds-container {
	margin-inline: auto;
}

.atv-section {
	padding-block: var(--spacing-layout-l);
}

.atv-section__eyebrow {
	margin: 0 0 var(--spacing-2-xs);
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-black-60);
}

/* One band heading on every page: the section title has the same scale and case as the split heading
   (sections.css .atv-split__content .wp-block-heading) — eyebrow above, H2 in display caps. A plain H2 that opens a band
   (e.g. Contactos «Vem visitar-nos…») uses it too. */
.atv-section__title,
.atv-section > .hds-container > h2.wp-block-heading {
	margin: 0 0 var(--spacing-m);
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: min(var(--wp--preset--font-size--h-1), 9vw);
	line-height: 1.05;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	text-wrap: balance;
}

/* Group titles: still H2, but they rank below the page H1 and the band H2s — h-2 size, sentence case.
   Órgãos Sociais groups, the documents list heading, and a plain H2 further down a band (Representações groups). */
.atv-people-group__title,
.atv-docs__heading,
.atv-section > .hds-container > :not(.is-style-atv-eyebrow, .atv-section__eyebrow) + h2.wp-block-heading:not(.atv-section__title) {
	margin: 0 0 var(--spacing-s);
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--h-2);
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-transform: none;
	text-wrap: balance;
}

/* A group H2 further down a band (Representações) starts a new group: room above it. */
.atv-section > .hds-container > :not(.is-style-atv-eyebrow, .atv-section__eyebrow) + h2.wp-block-heading:not(.atv-section__title) {
	margin-block-start: var(--spacing-layout-m);
}

.atv-section__cta {
	margin-top: var(--spacing-m);
}

/* Agenda without Activitly events (inc/fallbacks.php): a slim navy band on the page grid, no photo.
   It is an .atv-section.atv-section--compact, so it goes full-bleed and spaces like every band (pages.css, sections.css).
   Same eyebrow + H2 as every band, a step smaller so it reads as a pointer, not a section. */
.atv-agenda-band {
	background: var(--atv-navy);
	color: var(--color-white);
}

.atv-agenda-band__inner {
	display: grid;
	gap: var(--spacing-m);
	align-items: end;
}

@media (min-width: 768px) {
	.atv-agenda-band__inner {
		grid-template-columns: 1fr auto;
		gap: var(--spacing-l);
	}
}

.atv-agenda-band .atv-section__eyebrow {
	color: var(--atv-green-tint);
}

.atv-agenda-band__title {
	margin-block-end: var(--spacing-xs);
	font-size: var(--wp--preset--font-size--h-2);
	color: inherit;
}

.atv-agenda-band__lead {
	margin: 0;
	max-width: 40rem;
	font-size: var(--fontsize-body-l);
}

.atv-agenda-band__action .hds-button {
	margin: 0;
}

.atv-band-cta {
	padding-block: var(--spacing-layout-l);
	text-align: center;
}

/* Sentence case in the markup (screen readers, copy); display caps here. */
.atv-band-cta__title {
	margin: 0 0 var(--spacing-m);
	font-family: var(--font-heading);
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-wrap: balance;
}

/* Cabeçalho de secção como em atv.pt: marcador (10px) › eyebrow › título. */
.atv-section__eyebrow.atv-marker,
.is-style-atv-eyebrow {
	--atv-marker-height: 0.625rem;
	--atv-marker-gap: var(--spacing-xs);
}

.atv-band-cta__title.atv-marker {
	--atv-marker-gap: var(--spacing-s);
}

/* Página inicial: as secções trazem o seu próprio espaçamento; sem faixas brancas entre bandas nem margem no topo. */
body.home .atv-main {
	margin-block-start: 0;
}

body.home .atv-main > * {
	margin-block-start: 0;
}

body.home .atv-main > .wp-block-post-content > * {
	margin-block: 0;
}
