/*
 * TurismoPP Agenda: componentes novos da agenda. Reaproveita .tpp-container, .tpp-grid,
 * .tpp-card, .tpp-button e .tpp-badge do tema, com fallback se as variáveis não existirem.
 */
.tpp-agenda,
.tpp-agenda-single {
	--tppa-primary: var(--wp--preset--color--primary, #1688d3);
	--tppa-text: var(--wp--preset--color--text-dark, #232530);
	--tppa-muted: var(--wp--preset--color--text-muted, #646a7c);
	--tppa-surface: var(--wp--preset--color--surface, #f4f6f8);
	--tppa-border: var(--wp--preset--color--border, #e5e5e5);
}

/* Barra de filtros */
.tpp-agenda__bar { display: grid; gap: 16px; padding-block: 16px 8px; }
.tpp-agenda__cats { display: flex; flex-wrap: wrap; gap: 8px; }
.tpp-agenda__pill {
	display: inline-block;
	padding: 6px 16px;
	border: 1px solid var(--tppa-border);
	border-radius: 999px;
	background: #fff;
	color: var(--tppa-text);
	font-size: 0.9rem;
}
.tpp-agenda__pill:hover { border-color: var(--tppa-primary); color: var(--tppa-primary); }
.tpp-agenda__pill.is-active { background: var(--tppa-primary); border-color: var(--tppa-primary); color: #fff; }

.tpp-agenda__tools { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; justify-content: space-between; }
.tpp-agenda__form { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.tpp-agenda__form p { margin: 0; display: grid; gap: 4px; }
.tpp-agenda__form label { font-size: 0.8rem; font-weight: 700; color: var(--tppa-muted); }
.tpp-agenda__form input[type="search"],
.tpp-agenda__form select {
	min-height: 42px;
	padding: 8px 12px;
	border: 1px solid var(--tppa-border);
	border-radius: 4px;
	background: #fff;
	color: var(--tppa-text);
	font: inherit;
}
.tpp-agenda__form .tpp-button { min-height: 42px; border: 0; cursor: pointer; font: inherit; font-weight: 600; }
.tpp-agenda__clear { align-self: center; font-size: 0.9rem; }

.tpp-agenda__views { display: inline-flex; border: 1px solid var(--tppa-border); border-radius: 4px; overflow: hidden; }
.tpp-agenda__view { padding: 10px 18px; background: #fff; color: var(--tppa-text); font-weight: 600; }
.tpp-agenda__view.is-active { background: var(--tppa-primary); color: #fff; }

.tpp-agenda a:focus-visible,
.tpp-agenda-single a:focus-visible,
.tpp-agenda button:focus-visible,
.tpp-agenda input:focus-visible,
.tpp-agenda select:focus-visible {
	outline: 3px solid var(--tppa-primary);
	outline-offset: 2px;
}

/* Abas, títulos de seção, vazio, paginação, exportação */
.tpp-agenda__tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 16px; border-bottom: 2px solid var(--tppa-border); }
.tpp-agenda__tab { padding: 10px 18px; margin-bottom: -2px; border-bottom: 2px solid transparent; color: var(--tppa-muted); font-weight: 700; }
.tpp-agenda__tab.is-active { border-bottom-color: var(--tppa-primary); color: var(--tppa-text); }
.tpp-agenda__heading { margin: 24px 0 0; font-size: 1.25rem; }
.tpp-agenda__empty { padding-block: 24px; color: var(--tppa-muted); }
.tpp-agenda__pagination { padding-block: 8px 24px; }
.tpp-agenda__pagination .page-numbers {
	display: inline-block;
	min-width: 40px;
	padding: 8px 12px;
	margin: 0 4px 4px 0;
	border: 1px solid var(--tppa-border);
	border-radius: 4px;
	color: var(--tppa-text);
	text-align: center;
}
.tpp-agenda__pagination .page-numbers.current { background: var(--tppa-primary); border-color: var(--tppa-primary); color: #fff; }
.tpp-agenda__export { padding-block: 8px 32px; font-size: 0.9rem; }

/* Cards */
.tpp-agenda-card.is-past { opacity: 0.85; }
.tpp-agenda-card__venue { margin: 0 0 8px; color: var(--tppa-muted); font-size: 0.9rem; }
.tpp-agenda-card__cats { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tpp-agenda-chip {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--tppa-surface);
	color: var(--tppa-muted);
	font-size: 0.75rem;
}
a.tpp-agenda-chip:hover { background: var(--tppa-primary); color: #fff; }

/* Calendário mensal */
.tpp-agenda-cal { padding-block: 16px 24px; }
.tpp-agenda-cal__nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; margin-bottom: 16px; }
.tpp-agenda-cal__nav > :first-child { justify-self: start; }
.tpp-agenda-cal__nav > :last-child { justify-self: end; }
.tpp-agenda-cal__nav a { font-weight: 700; white-space: nowrap; }
.tpp-agenda-cal__title { margin: 0; font-size: 1.4rem; text-align: center; }
.tpp-agenda-cal__table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.tpp-agenda-cal__table th {
	padding: 8px;
	border-bottom: 2px solid var(--tppa-border);
	color: var(--tppa-muted);
	font-size: 0.8rem;
	text-align: left;
	text-transform: uppercase;
}
.tpp-agenda-cal__table abbr { text-decoration: none; }
.tpp-agenda-cal__day { height: 120px; padding: 6px; border: 1px solid var(--tppa-border); overflow: hidden; vertical-align: top; }
.tpp-agenda-cal__day.is-empty { background: var(--tppa-surface); }
.tpp-agenda-cal__day.is-today { background: #eef7fd; }
.tpp-agenda-cal__num { display: inline-block; margin-bottom: 4px; font-size: 0.85rem; font-weight: 700; }
.is-today .tpp-agenda-cal__num { min-width: 24px; padding: 0 6px; border-radius: 999px; background: var(--tppa-primary); color: #fff; text-align: center; }
.tpp-agenda-cal__events { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; }
.tpp-agenda-cal__events li { min-width: 0; }
.tpp-agenda-cal__events a {
	display: block;
	padding: 2px 6px;
	border-left: 3px solid var(--tppa-primary);
	border-radius: 2px;
	background: #e8f3fb;
	color: var(--tppa-text);
	font-size: 0.75rem;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tpp-agenda-cal__events a:hover { background: var(--tppa-primary); color: #fff; }
.tpp-agenda-cal__events .tpp-agenda-cal__more a { border-left: 0; background: none; color: var(--tppa-primary); font-weight: 700; }
.tpp-agenda-cal__time { font-weight: 700; }

/* Em tela estreita a tabela sai e entra a lista por dia */
.tpp-agenda-cal__list { display: none; margin: 0; padding: 0; list-style: none; }
.tpp-agenda-cal__list > li { padding-block: 12px; border-bottom: 1px solid var(--tppa-border); }
.tpp-agenda-cal__list h3 { margin: 0 0 6px; font-size: 1rem; }
.tpp-agenda-cal__list h3::first-letter { text-transform: uppercase; }
.tpp-agenda-cal__list ul { display: grid; gap: 4px; }
@media (max-width: 700px) {
	.tpp-agenda-cal__table { display: none; }
	.tpp-agenda-cal__list { display: block; }
	/* Só as setas: o nome do mês continua no aria-label do link. */
	.tpp-agenda-cal__navlabel { display: none; }
	.tpp-agenda-cal__nav a { padding: 4px 14px; font-size: 1.6rem; line-height: 1; }
	.tpp-agenda-cal__title { font-size: 1.15rem; }
	.tpp-agenda__form { width: 100%; }
	.tpp-agenda__form p { flex: 1 1 140px; }
	.tpp-agenda__form input[type="search"],
	.tpp-agenda__form select { width: 100%; }
}

/* Página do evento: cartaz e texto à esquerda, botões e informações à direita */
.tpp-agenda-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
	grid-template-rows: auto minmax(0, 1fr);
	grid-template-areas:
		"media side"
		"body side";
	column-gap: 40px;
	align-items: start;
	margin-top: 24px;
}
.tpp-agenda-single__layout--solo {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"media"
		"body";
}
.tpp-agenda-single__media { grid-area: media; margin-block: 0 24px; }
.tpp-agenda-single__body { grid-area: body; max-width: none; }
.tpp-agenda-single__body:empty { display: none; }
/* O tema dá 1em de margem aos filhos do texto: o primeiro parágrafo alinha com o topo da coluna da direita. */
.tpp-agenda-single__body > :first-child { margin-top: 0; }
.tpp-agenda-single__side { grid-area: side; display: grid; gap: 16px; min-width: 0; }
.tpp-agenda-single__side .tpp-event-details { margin-top: 0; }
.tpp-agenda-single__side .tpp-event-details dd { overflow-wrap: anywhere; }

/* Botões de calendário: empilhados e na largura da coluna */
.tpp-agenda-single__actions { display: grid; gap: 10px; }
.tpp-agenda-single__actions-label { font-weight: 700; }
.tpp-agenda-single__actions .tpp-button { text-align: center; }

/* Tela estreita: cartaz, informações e só depois o texto */
@media (max-width: 900px) {
	.tpp-agenda-single__layout,
	.tpp-agenda-single__layout--solo {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		grid-template-areas:
			"media"
			"side"
			"body";
	}
	.tpp-agenda-single__side { margin-bottom: 24px; }
}

.tpp-button--ghost { border: 1px solid var(--tppa-primary, #1688d3); background: #fff; color: var(--tppa-primary, #1688d3); }
.tpp-button--ghost:hover { background: var(--tppa-primary, #1688d3); color: #fff; }
.tpp-agenda-single__back { margin-top: 24px; }
