.cp-programacao-wrap {
	/* Cores oficiais ABRH-PR / CONPARH (Elementor global colors, kit #8) */
	--cp-primary: #DE2B56;      /* Primário — rosa/magenta */
	--cp-primary-dark: #A41E4A; /* Secundário — vinho */
	--cp-purple: #580A42;       /* Texto — roxo escuro */
	--cp-gold: #EFD07E;         /* Amarelo */
	--cp-gold-dark: #b8933a;
	--cp-linkedin: #0A66C2;     /* azul oficial do LinkedIn */
	--cp-gelo: #E7E9EC;         /* contorno "gelo" dos cards de palestrante (neutro) */
	--cp-bg-caixa: #f2f2f2;
	--cp-titulo: #580A42;       /* tema/título da sessão — roxo escuro da marca */
	--cp-label: #DE2B56;        /* "Talks Simultâneos" / "Master Talk" / "Palestrante" */
	--cp-borda: #3a1030;
	font-family: inherit;
	max-width: 1100px;
	margin: 0 auto;
}

/* ---------- Abas ---------- */
.cp-abas {
	display: flex;
	gap: 8px;
	margin-bottom: 28px;
	flex-wrap: wrap;
}
.cp-aba-botao {
	background: transparent;
	border: 2px solid var(--cp-primary);
	color: var(--cp-primary);
	padding: 10px 22px;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.cp-aba-botao.is-ativa,
.cp-aba-botao:hover {
	background: var(--cp-primary);
	color: #fff;
}
.cp-aba-painel { display: none; }
.cp-aba-painel.is-ativa { display: block; }

/* ---------- Efeito "cartão empilhado" (bloco branco por baixo) ----------
   Reaproveitado tanto no card rosa (talk) quanto no bloco dourado (informativo). */
.cp-sombra {
	position: relative;
	box-shadow:
		7px 7px 0 0 #ffffff,
		7px 7px 0 1px rgba(0, 0, 0, .06);
}

/* ---------- Bloco informativo (credenciamento, intervalos...) ---------- */
.cp-grupo-info {
	margin-bottom: 22px;
}
.cp-info-card {
	display: flex;
	align-items: stretch;
	background: var(--cp-gold);
	border-radius: 16px;
	padding: 14px;
	gap: 14px;
}
.cp-info-horario {
	flex: 0 0 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.05rem;
	color: #D02859;
	text-align: center;
}
.cp-info-caixa {
	flex: 1;
	background: var(--cp-bg-caixa);
	border: 1px solid var(--cp-borda);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 16px;
	color: var(--cp-titulo);
	font-weight: 700;
}
.cp-info-local {
	display: block;
	font-weight: 400;
	font-size: .8em;
	color: #666;
	margin-top: 4px;
}

/* ---------- Grupo de talks ----------
   O grupo É o card rosa. Sessões simultâneas (mesmo horário) ficam empilhadas
   DENTRO dele, com o horário aparecendo uma única vez à esquerda.
   Não voltar a criar um card por sessão. */
.cp-grupo-talk {
	display: flex;
	align-items: stretch;
	background: var(--cp-primary);
	border-radius: 16px;
	padding: 14px;
	gap: 14px;
	color: #fff;
	margin-bottom: 22px;
}
.cp-grupo-horario {
	flex: 0 0 140px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.05rem;
	text-align: center;
}
.cp-grupo-sessoes {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

/* ---------- Sessão dentro do grupo ---------- */
.cp-sessao-item {
	display: flex;
	align-items: stretch;
	gap: 14px;
	padding: 14px 0;
	min-width: 0;
}
.cp-sessao-item:first-child {
	padding-top: 0;
}
.cp-sessao-item:last-child {
	padding-bottom: 0;
}
/* linha divisória fina entre sessões simultâneas */
.cp-sessao-item + .cp-sessao-item {
	border-top: 1px solid rgba(255, 255, 255, .4);
}
.cp-card-tema {
	flex: 1.4;
	background: var(--cp-bg-caixa);
	border: 1px solid var(--cp-borda);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 16px;
}
.cp-card-tema-titulo {
	font-weight: 700;
	color: var(--cp-titulo);
	line-height: 1.4;
}
.cp-card-tema-label {
	margin-top: 6px;
	font-weight: 600;
	color: var(--cp-label);
	font-size: .95em;
}
.cp-card-pessoas {
	flex: 1;
	background: var(--cp-bg-caixa);
	border: 1px solid var(--cp-borda);
	border-radius: 10px;
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.cp-pessoas-secao h4 {
	margin: 0 0 8px;
	text-align: center;
	color: var(--cp-label);
	border-bottom: 1px solid var(--cp-primary);
	padding-bottom: 6px;
	font-size: .95rem;
	font-weight: 700;
}
.cp-pessoas-secao-moderador h4 {
	color: var(--cp-gold-dark);
}
.cp-pessoa {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
	color: #222;
	font-weight: 600;
}
.cp-avatar {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	overflow: hidden;
	background: #dcdcdc;
	border: 2px solid var(--cp-primary);
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cp-avatar-icone {
	width: 60%;
	height: 60%;
	fill: #9a9a9a;
}
.cp-a-definir {
	color: #888;
	font-style: italic;
	font-weight: 400;
}

.cp-vazio {
	text-align: center;
	color: #777;
	padding: 40px 0;
}

/* ---------- Grid de Palestrantes ---------- */
.cp-palestrantes-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px 24px;
}
.cp-pcard {
	text-align: center;
}
/* Card retangular. Camadas, de fora p/ dentro:
   contorno gelo (padding) → linha branca (.cp-pcard-inner) → 1px roxo (.cp-pcard-crop) → foto. */
.cp-pcard-foto {
	position: relative;
	width: 100%;
	max-width: 210px;
	margin: 0 auto;
	padding: 7px;                        /* contorno gelo reduzido 30% (10→7) */
	border-radius: 20px;
	background: var(--cp-gelo);
	transition: transform .2s ease;      /* sem sombra */
}
.cp-pcard-inner {
	border: 3px solid #fff;              /* linha branca */
	border-radius: 14px;
	background: #fff;
}
.cp-pcard-crop {
	position: relative;
	border: 1px solid #520443;           /* contorno colado na foto */
	border-radius: 11px;
	background: #ececec;                 /* cinza claro (avatar sem foto) */
	overflow: hidden;
	aspect-ratio: 4 / 5;                 /* retangular (retrato) */
}
.cp-pcard-crop img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cp-pcard-semfoto {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-pcard-semfoto .cp-avatar-icone {
	width: 48%;
	height: 48%;
	fill: #b9b9b9;
}
/* Mouseover: leve elevação (sem sombra) */
.cp-pcard:hover .cp-pcard-foto {
	transform: translateY(-4px);
}
/* LinkedIn na cor oficial, no canto inferior direito (sobrepondo o canto do card) */
.cp-pcard-linkedin {
	position: absolute;
	right: -6px;
	bottom: -6px;
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cp-linkedin);
	border: 3px solid #fff;
	border-radius: 10px;
	transition: transform .15s ease, background .15s ease;
	z-index: 3;
}
.cp-pcard-linkedin:hover {
	background: #084d92;
	transform: translateY(-2px);
}
.cp-linkedin-icone {
	width: 60%;
	height: 60%;
	fill: #fff;
}
.cp-pcard-nome {
	font-weight: 700;
	color: var(--cp-titulo);
	line-height: 1.3;
	font-size: 1.02rem;
	margin-top: 14px;
}

@media (max-width: 900px) {
	.cp-palestrantes-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 680px) {
	.cp-palestrantes-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
}
@media (max-width: 400px) {
	.cp-palestrantes-grid { grid-template-columns: 1fr; }
}

/* ---------- Responsivo ---------- */
@media (max-width: 782px) {
	.cp-grupo-talk,
	.cp-sessao-item,
	.cp-info-card {
		flex-direction: column;
	}
	.cp-grupo-horario,
	.cp-info-horario {
		flex-basis: auto;
		margin-bottom: 12px;
	}
	.cp-sombra {
		box-shadow:
			5px 5px 0 0 #ffffff,
			5px 5px 0 1px rgba(0, 0, 0, .06);
	}
}
