.atv-page-hero {
	padding-block: var(--spacing-layout-m) var(--spacing-s);
}

.atv-page-hero h1 {
	margin: 0;
	padding-top: var(--spacing-s);
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--fontsize-heading-xl-mobile);
	letter-spacing: -0.03em;
	color: var(--color-black-90);
}

/* Default page template (page.html): the content sits directly in main, so it carries the gutter (the hero text uses the same steps).
   Same steps as the HDS breadcrumb margin (16 / 24 / 32px) so everything lines up with it. */
.atv-main.is-layout-constrained > .wp-block-post-content {
	box-sizing: border-box;
	padding-inline: var(--spacing-layout-2-xs);
}

@media (min-width: 768px) {
	.atv-main.is-layout-constrained > .wp-block-post-content {
		padding-inline: var(--spacing-layout-xs);
	}
}

@media (min-width: 1248px) {
	.atv-main.is-layout-constrained > .wp-block-post-content {
		padding-inline: var(--spacing-layout-s);
	}
}

/* Section bands (atv/split, atv/section, atv/hero-slider) used in a page: full-bleed, like on the homepage.
   The post content here is itself capped at the content size by main's constrained layout (core gives it max-width plus
   margin-inline auto !important), so cancelling only its gutter would leave the bands boxed at 72rem on desktop. Instead the
   band breaks out to the viewport: margin-inline calc(50% - 50vw) makes its border box exactly 100vw and centred on the page
   at every breakpoint (it replaces the per-breakpoint 16/24/32px gutter, which the 50% already includes). The bands are
   children of a flow-layout post content, which sets only block margins, so no !important is needed for the inline margins. */
.atv-main.is-layout-constrained > .wp-block-post-content > :is(.atv-split, .atv-section, .atv-hero) {
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

/* 100vw includes a classic (non-overlay) scrollbar: clip that sliver instead of letting the page scroll sideways.
   clip (not hidden) keeps main from becoming a scroll container, so sticky children still work. */
.atv-main.is-layout-constrained:has(> .wp-block-post-content > :is(.atv-split, .atv-section, .atv-hero)) {
	overflow-x: clip;
}

/* Bands carry their own padding: no block-gap strips above, below or between them on any page. */
.wp-block-post-content > :is(.atv-split, .atv-section) {
	margin-block: 0;
}

/* Prose straight above a band keeps the normal block gap (the prose below a band already gets it from the flow layout). */
.wp-block-post-content > :not(.atv-split, .atv-section, .atv-hero) + :is(.atv-split, .atv-section) {
	margin-block-start: var(--wp--preset--spacing--m);
}

.atv-page-hero:not(:has(img)) {
	background: transparent;
}

/* Page hero block (atv/page-hero): breaks out of any container and spans the viewport. */
.atv-main.is-layout-constrained > .atv-page-hero,
.atv-main.is-layout-flow > .atv-page-hero {
	max-width: none;
	margin-inline: 0;
}

/* A photo hero sits flush under the sticky header (no block-gap strip). */
.wp-site-blocks > .atv-main:has(> .atv-page-hero--photo:first-child) {
	margin-block-start: 0;
}

/* Default template: same measure and gutters as the post content below it. */
.atv-page-hero.atv-page-hero--prose {
	padding-block: 0;
}

.atv-page-hero--prose .atv-page-hero__content {
	max-width: var(--wp--style--global--content-size, 72rem);
	margin-inline: auto;
	box-sizing: border-box;
	padding-inline: var(--spacing-layout-2-xs);
}

.atv-page-hero.atv-page-hero--photo {
	position: relative;
	display: flex;
	align-items: flex-end;
	width: 100%;
	min-height: max(40svh, 16rem);
	padding-block: 0;
	color: var(--color-white);
	background: var(--atv-scrim);
	border-bottom: var(--spacing-3-xs) solid var(--color-bus);
	margin-block-end: var(--spacing-layout-m);
	overflow: hidden;
}

.atv-page-hero__media {
	position: absolute;
	inset: 0;
}

.atv-page-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.atv-page-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, color-mix(in srgb, var(--atv-scrim) 35%, transparent) 0%, color-mix(in srgb, var(--atv-scrim) 55%, transparent) 45%, var(--atv-scrim) 100%);
}

.atv-page-hero--photo .atv-page-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	box-sizing: border-box;
	padding-block: var(--spacing-layout-m);
}

.atv-page-hero--photo.atv-page-hero--prose .atv-page-hero__content {
	max-width: var(--wp--style--global--content-size, 72rem);
}

.atv-page-hero--photo h1 {
	padding-top: var(--spacing-s);
	color: var(--color-white);
	text-wrap: balance;
}

/* Breadcrumb on the photo: white on scrim; links underline so they do not rely on colour. */
.atv-page-hero--photo .hds-breadcrumb,
.atv-page-hero--photo .hds-breadcrumb__link,
.atv-page-hero--photo .hds-breadcrumb__list-item,
.atv-page-hero--photo .hds-breadcrumb__list-item span {
	--breadcrumb-link-color: var(--color-white);
	color: var(--color-white);
}

.atv-page-hero--photo .hds-breadcrumb__link {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.atv-page-hero--photo .hds-breadcrumb__link:focus-visible {
	outline: 3px solid var(--atv-focus-dark);
	outline-offset: var(--atv-focus-offset);
}

@media (min-width: 768px) {
	.atv-page-hero--prose .atv-page-hero__content {
		padding-inline: var(--spacing-layout-xs);
	}
}

@media (min-width: 992px) {
	.atv-page-hero.atv-page-hero--photo {
		min-height: clamp(22rem, 55svh, 40rem);
	}
}

@media (min-width: 1248px) {
	.atv-page-hero--prose .atv-page-hero__content {
		padding-inline: var(--spacing-layout-s);
	}
}

@media (forced-colors: active) {
	.atv-page-hero--photo {
		border-bottom-color: CanvasText;
		background: Canvas;
		color: CanvasText;
	}

	.atv-page-hero__media::after {
		background: Canvas;
		opacity: 0.85;
	}

	.atv-page-hero--photo h1,
	.atv-page-hero--photo .hds-breadcrumb,
	.atv-page-hero--photo .hds-breadcrumb__link,
	.atv-page-hero--photo .hds-breadcrumb__list-item span {
		color: CanvasText;
	}
}

.atv-page-siblings-wrap {
	padding-block: var(--spacing-s) var(--spacing-m);
}

/* Same H1 → pills distance (56px) under a photo hero as under a text hero (16 + 24 + 16): the photo hero's text keeps
   less bottom padding when the pills follow, and the wrap drops the block gap (24 + 4px border + 28). */
.atv-page-hero--photo:has(+ .atv-page-siblings-wrap) .atv-page-hero__content {
	padding-block-end: var(--spacing-m);
}

.atv-page-hero--photo + .atv-page-siblings-wrap {
	margin-block-start: 0;
	padding-block-start: calc(var(--spacing-l) - var(--spacing-3-xs));
}

/* Default template (constrained main): the wrap spans the page and the nav sits on the hds-container, like the hero text. */
.atv-main.is-layout-constrained > .atv-page-siblings-wrap {
	max-width: none;
}

.atv-page-siblings-wrap + .wp-block-post-content,
.atv-page-siblings-wrap + .wp-block-post-content > :is(.atv-split, .atv-section, .atv-contact-sheet):first-child {
	margin-block-start: 0;
}

/* "Quem somos" pages: pill tabs, the current page filled (aria-current, not colour alone: filled + bold). */
.atv-page-siblings__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-2-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.atv-page-siblings__list li {
	max-width: none;
}

.atv-page-siblings__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	box-sizing: border-box;
	padding: var(--spacing-3-xs) var(--spacing-s);
	border: 1px solid var(--color-black-20);
	border-radius: 999px;
	color: var(--atv-navy);
	background: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--fontsize-body-s);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--atv-motion-fast) var(--atv-motion-ease), background-color var(--atv-motion-fast) var(--atv-motion-ease);
}

.atv-page-siblings__link:hover {
	border-color: var(--atv-navy);
}

.atv-page-siblings__link:focus-visible {
	outline: var(--atv-focus-width, 3px) solid var(--color-focus-outline);
	outline-offset: var(--atv-focus-offset, 2px);
}

.atv-page-siblings__link[aria-current="page"] {
	border-color: var(--atv-navy);
	background: var(--atv-navy);
	color: var(--color-white);
	font-weight: 700;
}

/* Phones: one scrollable row instead of three wrapped rows of pills. */
@media (max-width: 599px) {
	.atv-page-siblings__list {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-block: var(--spacing-3-xs);
		scrollbar-width: thin;
	}

	.atv-page-siblings__link {
		white-space: nowrap;
	}

	/* The scroll row clips anything outside it: the focus ring goes inside the pill. */
	.atv-page-siblings__link:focus-visible {
		outline-offset: calc(-1 * var(--atv-focus-width, 3px) - 1px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.atv-page-siblings__link {
		transition: none;
	}
}

@media (forced-colors: active) {
	.atv-page-siblings__link[aria-current="page"] {
		border-width: 3px;
	}
}

.atv-page-lead {
	margin: 0 0 var(--spacing-m);
	font-size: var(--fontsize-body-l);
	max-width: 40rem;
}

.atv-page-body {
	padding-bottom: var(--spacing-layout-l);
	max-width: 72rem;
}

.atv-page-body--wide {
	max-width: 90rem;
}

.atv-page--no-hero {
	padding-block: var(--spacing-m) var(--spacing-layout-l);
}

.atv-prose {
	max-width: 40rem;
}

.atv-prose p {
	margin: 0 0 var(--spacing-s);
}

.atv-prose__lema {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: var(--fontsize-heading-s);
}

.atv-prose--legal {
	max-width: 42rem;
}

.atv-prose--legal h2 {
	margin: var(--spacing-l) 0 var(--spacing-xs);
	font-size: var(--fontsize-heading-s);
}

.atv-docs {
	margin: var(--spacing-layout-l) 0 0;
}

.atv-docs:first-child {
	margin-block-start: 0;
}

/* In its own band (atv_wrap_in_band) the band carries the spacing. */
.atv-section--docs .atv-docs {
	margin: 0;
}

/* The heading is a page-level H2 in the band heading style (home.css .atv-section__title). */


.atv-docs__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: var(--spacing-2-xs);
}

.atv-cta-contact {
	margin: var(--spacing-l) 0 0;
}

.atv-reps {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--spacing-s);
}

.atv-reps li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--spacing-xs);
	align-items: start;
}

.atv-reps__glyph {
	color: var(--color-bus);
	font-family: var(--font-heading);
	font-weight: 800;
	line-height: 1.4;
}

.atv-reps__label {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: var(--fontsize-body-m);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.atv-apoiar {
	max-width: 48rem;
}

.atv-apoiar__slogan {
	margin: 0 0 var(--spacing-xs);
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--fontsize-heading-m);
	letter-spacing: -0.02em;
}

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

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

.atv-apoiar__action {
	margin: 0 0 var(--spacing-l);
}

.atv-apoiar__action h3 {
	margin: 0 0 var(--spacing-xs);
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: var(--fontsize-heading-s);
}

.atv-apoiar__notes {
	margin: var(--spacing-s) 0 0;
	padding: 0 0 0 var(--spacing-m);
}

.atv-apoiar .hds-highlight {
	width: 100%;
	max-width: 36rem;
}

.atv-pouco {
	padding-bottom: var(--spacing-m);
}

@media (min-width: 768px) {
	.atv-page-hero h1 {
		font-size: var(--fontsize-heading-xl);
	}

	.atv-reps {
		grid-template-columns: 1fr 1fr;
		column-gap: var(--spacing-layout-m);
	}
}

/* Pages built from section bands: the first band sits right under the photo hero (no white strip). */
.atv-page-hero--sections.atv-page-hero--photo {
	margin-block-end: 0;
}

.atv-page-hero--sections + .wp-block-post-content,
.atv-page-hero--sections + .wp-block-post-content > :is(.atv-split, .atv-section, .atv-contact-sheet):first-child {
	margin-block-start: 0;
}
