/*
 * Homepage sections added after the first layout pass (agenda, activities, etc.).
 * Tokens only (see docs/design-system.md); no hex values.
 */

/* Agenda (Activitly) — atv-core/inc/agenda-render.php.
   Navy band (.atv-on-dark). One bold element: the poster with the lima day numeral (lima on scrim 8,42:1).
   Everything else is calm: white / lima pálido on navy (10,98 / 8,50:1). Lines are decorative. */
.atv-section--agenda {
	--atv-agenda-line: color-mix(in srgb, var(--color-white) 18%, var(--atv-navy));
	--atv-agenda-surface: color-mix(in srgb, var(--color-white) 6%, var(--atv-navy));
	--atv-agenda-surface-hover: color-mix(in srgb, var(--color-white) 11%, var(--atv-navy));
	--atv-agenda-soft: var(--atv-green-tint);
}

.atv-section--agenda .atv-section__eyebrow {
	color: var(--atv-agenda-soft);
}

.atv-agenda-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--spacing-s) var(--spacing-m);
	margin-block-end: var(--spacing-l);
}

.atv-agenda-head .atv-section__title {
	margin: 0;
}

/* Destaque + cronologia */
.atv-agenda-layout {
	display: grid;
	gap: var(--spacing-layout-s);
	align-items: start;
}

@media (min-width: 992px) {
	.atv-agenda-layout {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: var(--spacing-layout-m);
	}

	/* A lone poster (no timeline) never leaves an empty column. */
	.atv-agenda-layout--solo {
		grid-template-columns: minmax(0, 36rem);
	}

	.atv-agenda-layout.is-feature-hidden {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* O cartaz */
.atv-agenda-feature {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 30rem;
	overflow: hidden;
	border-radius: var(--atv-radius-m);
	background: var(--atv-scrim);
	color: var(--color-white);
}

.atv-agenda-feature[hidden] {
	display: none;
}

@media (min-width: 992px) {
	.atv-agenda-feature {
		min-height: 40rem;
	}
}

/* Sticky only when the viewport is tall enough to show the whole poster. */
@media (min-width: 992px) and (min-height: 48rem) {
	.atv-agenda-feature {
		position: sticky;
		top: calc(var(--atv-header-h) + var(--spacing-m));
	}
}

.atv-agenda-feature__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Photo cards always keep a band of photo above the text, however long the title. */
.atv-agenda-feature--photo {
	padding-block-start: 10rem;
}

/* Scrim: the text block sits on solid scrim whatever its height (white 18,89:1, lima 8,42:1);
   the fade lives above it, so a tall body can never push text onto bare photo. */
.atv-agenda-feature--photo .atv-agenda-feature__body {
	position: relative;
	background: var(--atv-scrim);
}

.atv-agenda-feature--photo .atv-agenda-feature__body::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 100%;
	height: 6rem;
	background: linear-gradient(to top, var(--atv-scrim), color-mix(in srgb, var(--atv-scrim) 0%, transparent));
	pointer-events: none;
}

.atv-agenda-feature__body {
	display: grid;
	justify-items: start;
	gap: var(--spacing-xs);
	padding: var(--spacing-l) var(--spacing-m) var(--spacing-m);
}

.atv-agenda-feature__eyebrow {
	margin: 0;
	color: var(--atv-agenda-soft);
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.atv-agenda-feature__when {
	display: flex;
	align-items: flex-end;
	gap: var(--spacing-s);
	font-family: var(--font-heading);
}

.atv-agenda-feature__day {
	color: var(--atv-green);
	font-size: calc(var(--wp--preset--font-size--display) * 2.25);
	font-weight: 800;
	line-height: 0.78;
	letter-spacing: -0.05em;
	font-variant-numeric: lining-nums;
}

.atv-agenda-feature__date {
	padding-block-end: 0.15em;
	color: var(--color-white);
	font-size: var(--fontsize-body-s);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.atv-agenda-feature__title {
	margin: var(--spacing-2-xs) 0 0;
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--wp--preset--font-size--h-2);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.atv-agenda-feature__meta {
	margin: 0;
	color: var(--atv-agenda-soft);
	font-size: var(--fontsize-body-s);
}

.atv-agenda-feature__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-2-xs) var(--spacing-s);
	margin: 0;
}

.atv-agenda-feature__cta {
	margin-block-start: var(--spacing-xs);
}

/* Preço e estado */
.atv-agenda-price {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--fontsize-body-s);
	font-weight: 700;
	white-space: nowrap;
}

.atv-agenda-state {
	display: inline-block;
	font-size: var(--fontsize-body-s);
	white-space: nowrap;
}

.atv-agenda-state--calm {
	color: var(--atv-agenda-soft);
}

.atv-agenda-state--hot,
.atv-agenda-state--out {
	padding: var(--spacing-3-xs) var(--spacing-2-xs);
	border-radius: var(--atv-radius-s);
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Últimos lugares: lima + navy (4,89:1). */
.atv-agenda-state--hot {
	background: var(--atv-green);
	color: var(--atv-navy);
}

/* Esgotado / fechadas: contorno, branco sobre navy/scrim. */
.atv-agenda-state--out {
	border: 1px solid color-mix(in srgb, var(--color-white) 55%, var(--atv-navy));
	color: var(--color-white);
}

/* Cronologia */
.atv-agenda-timeline {
	display: grid;
	gap: var(--spacing-l);
}

.atv-agenda-month__title {
	margin: 0;
	padding-block-end: var(--spacing-2-xs);
	border-block-end: 1px solid var(--atv-agenda-line);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--wp--preset--font-size--h-5);
	font-weight: 700;
	letter-spacing: 0;
}

.atv-agenda-month__list,
.atv-agenda-regular__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.atv-agenda-item,
.atv-agenda-month__list > li {
	max-width: none; /* the 65ch prose measure doesn't apply to rows */
	margin: 0;
	border-block-end: 1px solid var(--atv-agenda-line);
}

.atv-section--agenda a.atv-agenda-item__link,
.atv-section--agenda a.atv-agenda-reg__link {
	color: var(--color-white);
	text-decoration: none;
}

.atv-agenda-item__link {
	display: grid;
	grid-template-columns: 3.5rem minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--spacing-2-xs) var(--spacing-s);
	min-height: 44px;
	padding: var(--spacing-s) var(--spacing-2-xs);
	border-radius: var(--atv-radius-s);
	transition: background-color var(--atv-motion-fast) var(--atv-motion-ease);
}

.atv-agenda-item__link:hover {
	background: var(--atv-agenda-surface);
}

.atv-agenda-item__date {
	display: grid;
	justify-items: center;
	font-family: var(--font-heading);
	line-height: 1;
}

.atv-agenda-item__day {
	font-size: var(--wp--preset--font-size--h-3);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.atv-agenda-item__wd {
	margin-block-start: var(--spacing-3-xs);
	color: var(--atv-agenda-soft);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.atv-agenda-item__main {
	display: grid;
	gap: var(--spacing-3-xs);
	min-width: 0;
}

.atv-agenda-item__title,
.atv-agenda-reg__title {
	margin: 0;
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: var(--fontsize-body-l);
	font-weight: 700;
	line-height: 1.3;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

.atv-agenda-item__link:hover .atv-agenda-item__title,
.atv-agenda-reg__link:hover .atv-agenda-reg__title {
	text-decoration-line: underline;
}

.atv-agenda-item__meta,
.atv-agenda-reg__meta {
	color: var(--atv-agenda-soft);
	font-size: var(--fontsize-body-s);
}

.atv-agenda-item__aside {
	display: grid;
	justify-items: end;
	gap: var(--spacing-3-xs);
	text-align: end;
}

@media (max-width: 575px) {
	.atv-agenda-item__link {
		grid-template-columns: 3rem minmax(0, 1fr);
		align-items: start;
	}

	.atv-agenda-item__aside {
		grid-column: 2;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-items: start;
		gap: var(--spacing-2-xs) var(--spacing-s);
		text-align: start;
	}
}

/* Atividades regulares */
.atv-agenda-regular {
	margin-block-start: var(--spacing-layout-m);
	padding-block-start: var(--spacing-l);
	border-block-start: 1px solid var(--atv-agenda-line);
}

.atv-agenda-layout[hidden],
.atv-agenda-regular[hidden],
.atv-agenda-timeline [hidden],
.atv-agenda-timeline[hidden] {
	display: none;
}

.atv-agenda-regular__title {
	margin: 0 0 var(--spacing-s);
	color: var(--atv-agenda-soft);
	font-family: var(--font-heading);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.atv-agenda-regular__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	gap: var(--spacing-s);
}

.atv-agenda-reg {
	display: flex;
	max-width: none;
}

.atv-agenda-reg[hidden] {
	display: none;
}

.atv-agenda-reg__link {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--spacing-2-xs);
	padding: var(--spacing-m);
	border: 1px solid var(--atv-agenda-line);
	border-radius: var(--atv-radius-m);
	background: var(--atv-agenda-surface);
	transition: background-color var(--atv-motion-fast) var(--atv-motion-ease);
}

.atv-agenda-reg__link:hover {
	background: var(--atv-agenda-surface-hover);
}

.atv-agenda-reg__dates {
	margin-block-start: auto;
	padding-block-start: var(--spacing-2-xs);
	color: var(--color-white);
	font-size: var(--fontsize-body-s);
	font-weight: 600;
}

.atv-agenda-cta {
	margin-block-start: var(--spacing-layout-s);
}

.atv-agenda-empty {
	margin: 0;
	color: var(--color-white);
	font-size: var(--fontsize-body-l);
}

@media (prefers-reduced-motion: reduce) {
	.atv-agenda-item__link,
	.atv-agenda-reg__link {
		transition: none;
	}
}

@media (forced-colors: active) {
	.atv-agenda-feature--photo .atv-agenda-feature__body::before {
		display: none;
	}

	.atv-agenda-feature__body {
		background: Canvas;
	}

	.atv-agenda-reg__link,
	.atv-agenda-state--hot,
	.atv-agenda-state--out {
		border: 1px solid CanvasText;
	}
}

/* Instagram */
.atv-instagram {
	border-top: 1px solid var(--wp--preset--color--atv-line);
}

.atv-instagram__handle {
	color: var(--color-black-60);
	font-weight: 600;
	text-transform: none;
}

.atv-instagram__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--spacing-3-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.atv-instagram__item {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
}

.atv-instagram__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--atv-motion-base) var(--atv-motion-ease);
}

.atv-instagram__item:hover img,
.atv-instagram__item:focus-visible img {
	transform: scale(1.05);
}

@media (max-width: 767px) {
	.atv-instagram__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

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

	.atv-instagram__item:hover img,
	.atv-instagram__item:focus-visible img {
		transform: none;
	}
}

.atv-form--compact .atv-form__grid {
	display: grid;
	gap: 0 var(--spacing-s);
}

/* Apoiar (atv/support-cards inside an atv/section band, which sets the background) */
.atv-home-apoiar__grid {
	display: grid;
	gap: var(--spacing-m);
	margin-bottom: var(--spacing-m);
}

@media (min-width: 900px) {
	.atv-home-apoiar__grid {
		grid-template-columns: 1fr 2fr;
		align-items: start;
	}
}

/* Static cards (not links): the .atv-card look without hover. */
.atv-home-apoiar__card {
	padding: var(--spacing-m);
}

.atv-home-apoiar__card h3 {
	margin-top: 0;
	/* "Quero apoiar o ATV" lands here (#atv-apoiar-empresa): clear the sticky header. */
	scroll-margin-top: calc(var(--atv-header-h) + var(--spacing-m));
	font-family: var(--font-heading);
	font-size: var(--fontsize-heading-s); /* card step (design-system: h4 · 1.25rem) */
}

.atv-home-apoiar__nif {
	font-family: var(--font-heading);
	font-size: var(--wp--preset--font-size--h-3);
	font-weight: 800;
	color: var(--atv-navy);
}

.atv-home-apoiar__details > summary {
	list-style: none;
	cursor: pointer;
	min-height: 44px;
}

.atv-home-apoiar__details > summary::marker {
	content: "";
}

.atv-home-apoiar__details > summary::-webkit-details-marker {
	display: none;
}

.atv-home-apoiar__details[open] > summary {
	margin-bottom: var(--spacing-m);
}

.atv-home-apoiar__card--sponsor .atv-sponsor .atv-form__grid {
	display: grid;
	gap: 0 var(--spacing-s);
}

@media (min-width: 600px) {
	.atv-home-apoiar__card--sponsor .atv-sponsor .atv-form__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (forced-colors: active) {
	.atv-home-apoiar__details > summary {
		border: 2px solid ButtonText;
	}

	.atv-home-apoiar__card {
		border-color: CanvasText;
	}
}

/* Quem nos apoia: the logo strip lives in partners.css; the band only drops the strip's own padding. */
.atv-partners--band {
	max-width: none;
	padding: 0;
}

/* Apoiar split (pattern atv/section-apoiar): two ways to help side by side (atv/support-ways). No boxes: a lima rule on
   top of each way, equal columns, the actions aligned on one line at the bottom. */
.atv-support-ways {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: var(--spacing-l);
	margin-block: var(--spacing-l);
}

.atv-support-way {
	display: flex;
	flex-direction: column;
	padding-block-start: var(--spacing-s);
	border-block-start: 3px solid var(--atv-green);
}

.atv-support-way > * {
	margin: 0;
}

.atv-support-way__who {
	font-family: var(--font-heading);
	font-size: var(--fontsize-body-s);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--atv-green-text);
}

.atv-support-way__title {
	margin-block: var(--spacing-3-xs) var(--spacing-xs);
	font-family: var(--font-heading);
	font-size: var(--fontsize-heading-s);
	font-weight: 800;
	line-height: 1.2;
	color: inherit;
}

.atv-support-way__text {
	line-height: 1.55;
}

.atv-support-way__nif {
	margin-block-start: var(--spacing-s);
	font-family: var(--font-heading);
	font-size: var(--fontsize-heading-s);
	font-weight: 800;
	letter-spacing: 0.02em;
	color: var(--atv-navy);
	font-variant-numeric: tabular-nums;
}

.atv-support-way__nif-label {
	margin-inline-end: var(--spacing-3-xs);
	font-size: var(--fontsize-body-s);
	font-weight: 700;
	color: var(--color-black-60);
}

.atv-support-way__action {
	margin-block-start: auto;
	padding-block-start: var(--spacing-m);
}

.atv-support-way__link {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-3-xs);
	min-height: 44px;
	font-weight: 700;
}

.atv-support-way__action .hds-button {
	white-space: nowrap;
}

/* "Todas as formas de apoiar": a visible secondary link with an arrow, under the two ways. */
.atv-support-ways__more {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-2-xs) var(--spacing-s);
	margin: calc(var(--spacing-m) * -1) 0 0;
	color: var(--color-black-70);
}

.atv-support-ways__more-link {
	gap: var(--spacing-3-xs);
	/* Text flush with the sentence above (the supplementary button's box stays for the hover and focus states). */
	padding-inline: 0;
}

/* /apoiar/: only the "suggest a company" card (atv/support-cards sponsorOnly). */
.atv-home-apoiar__grid--single {
	grid-template-columns: minmax(0, 48rem);
}
