/* Aldeia Programa v1.2 — agenda em trilho (timeline editorial)
   Paleta nas variáveis abaixo. O offset do cabeçalho fixo controla-se
   no shortcode com top="80px" (altura do header do tema).
   Atenção: position:sticky parte se um contentor-pai do Elementor
   tiver overflow:hidden. */

.ap-day{
	--ap-green-d:#1F3A32;
	--ap-green:#486B57;
	--ap-sage:#BFCEB6;
	--ap-sage-2:#A8B79F;
	--ap-cream:#EAE6DD;
	--ap-title-font:'Instrument Sans',system-ui,sans-serif;
	--ap-rail:96px;   /* largura da coluna das horas */
	--ap-top:0px;
	margin:0 0 2.5rem;
	font-family:'Inter',inherit;
}

/* ── cabeçalho de dia (pill sticky) ── */
.ap-dayhdr{
	position:sticky;
	top:var(--ap-top);
	z-index:5;
	display:flex;
	align-items:baseline;
	gap:14px;
	background:var(--ap-green-d);
	color:var(--ap-cream);
	border-radius:999px;
	padding:.65rem 1.4rem;
	margin:0 0 .5rem;
}
.ap-dayhdr .ap-d{
	font-family:var(--ap-title-font);
	font-size:1.15rem; font-weight:700;
	color:var(--ap-cream); letter-spacing:-.01em;
}
.ap-dayhdr .ap-n{
	margin-left:auto;
	font-size:.72rem; font-weight:500; letter-spacing:.12em;
	text-transform:uppercase; color:var(--ap-sage); white-space:nowrap;
}

/* ── lista / trilho vertical ── */
.ap-list{ position:relative; padding-top:1.2rem; }
.ap-list::before{
	content:""; position:absolute;
	left:var(--ap-rail); top:0; bottom:0;
	width:1px; background:var(--ap-sage-2);
}

.ap-ev{ position:relative; }
.ap-ev > summary.ap-row{
	list-style:none;
	cursor:pointer;
	position:relative;
	display:grid;
	grid-template-columns:var(--ap-rail) minmax(0,1fr) auto;
	align-items:baseline;
	gap:0 28px;
	padding:1.6rem 1rem 1.6rem 0;
	border-bottom:1px solid rgba(168,183,159,.55);
	transition:background-color .25s ease;
}
.ap-ev > summary.ap-row::-webkit-details-marker{ display:none; }
.ap-ev:last-of-type > summary.ap-row{ border-bottom:0; }
.ap-ev > summary.ap-row:hover{ background:rgba(191,206,182,.26); }

/* ponto no eixo */
.ap-ev > summary.ap-row::before{
	content:""; position:absolute;
	left:calc(var(--ap-rail) - 4.5px); top:2.1rem;
	width:9px; height:9px; border-radius:50%;
	background:var(--ap-cream);
	border:1.5px solid var(--ap-green);
	transition:background-color .25s ease, transform .25s ease;
}
.ap-ev > summary.ap-row:hover::before{ background:var(--ap-green); }
.ap-ev[open] > summary.ap-row::before{
	background:var(--ap-green-d); border-color:var(--ap-green-d);
	transform:scale(1.25);
}

.ap-time{
	font-family:var(--ap-title-font);
	font-size:.92rem; font-weight:600; letter-spacing:.01em;
	color:var(--ap-green);
	font-variant-numeric:tabular-nums;
	padding-left:8px;
}

.ap-lead{ min-width:0; }
.ap-title{
	font-family:var(--ap-title-font);
	font-size:clamp(1.25rem,2.6vw,1.6rem);
	font-weight:700;
	line-height:1.12;
	color:var(--ap-green-d);
	letter-spacing:-.015em;
	margin:0;
}

.ap-meta{
	margin-top:.45rem;
	display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px;
	font-size:.69rem; font-weight:600; letter-spacing:.13em;
	text-transform:uppercase; color:var(--ap-green);
}
.ap-dot{ opacity:.45; }
.ap-local{ font-weight:600; }
.ap-pub{ font-weight:600; }
.ap-tipo{
	font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
	background:var(--ap-sage); color:var(--ap-green-d);
	border-radius:999px; padding:.2rem .65rem;
}
.ap-resi{
	font-size:.69rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
	color:var(--ap-green);
	border:1px solid var(--ap-green);
	border-radius:999px; padding:.2rem .65rem;
}

.ap-actions{ display:flex; align-items:center; gap:16px; align-self:center; }
.ap-cta{
	display:inline-block;
	font-size:.78rem; font-weight:600; letter-spacing:.04em;
	color:var(--ap-cream); background:var(--ap-green-d);
	border:1.5px solid var(--ap-green-d);
	padding:.5rem 1.15rem; border-radius:999px;
	text-decoration:none; white-space:nowrap;
	transition:background-color .2s, color .2s;
}
.ap-cta:hover{ background:transparent; color:var(--ap-green-d); }
.ap-cta--full{
	background:transparent;
	color:var(--ap-green);
	border-color:var(--ap-sage-2);
}
.ap-cta--full:hover{
	background:var(--ap-sage-2);
	color:var(--ap-green-d);
	border-color:var(--ap-sage-2);
}
.ap-caret{
	width:26px; height:26px; flex:0 0 auto;
	display:grid; place-items:center;
	color:var(--ap-green);
	transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.ap-ev[open] .ap-caret{ transform:rotate(180deg); }

/* ── painel expandido (animação grid-rows) ── */
.ap-panelwrap{
	display:grid; grid-template-rows:0fr;
	transition:grid-template-rows .38s cubic-bezier(.4,0,.2,1);
}
.ap-ev[open] .ap-panelwrap{ grid-template-rows:1fr; }
.ap-panelclip{ overflow:hidden; }
.ap-panel{
	display:grid;
	grid-template-columns:minmax(220px,340px) minmax(0,1fr);
	gap:32px;
	padding:.4rem 1rem 2.4rem var(--ap-rail);
	opacity:0; transform:translateY(-6px);
	transition:opacity .3s ease .08s, transform .3s ease .08s;
}
.ap-ev[open] .ap-panel{ opacity:1; transform:none; }

.ap-day .ap-panel figure.ap-pimg{
	/* !important: o Elementor faz reset a figure{margin:0} com mais especificidade */
	margin:0 0 0 calc(var(--ap-rail) * -0.5) !important;  /* flutua por cima do eixo */
	position:relative; z-index:1;
	aspect-ratio:4/3;
	overflow:hidden;
	background:var(--ap-sage);
}
.ap-day .ap-pimg img{ width:100%; height:100%; object-fit:cover; display:block; }
.ap-day .ap-pimg--ph{ display:grid; place-items:center; color:var(--ap-green-d); }
.ap-day .ap-pimg--ph svg{ width:46%; height:auto; opacity:.55; }

.ap-ptxt{ max-width:58ch; align-self:center; }
.ap-ptxt p{ font-size:.95rem; line-height:1.65; color:rgba(31,58,50,.88); margin:0 0 .9rem; }
.ap-insc{
	margin-top:.2rem;
	font-size:.82rem; font-weight:500; color:var(--ap-green);
	display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}

/* divisória de fim de dia (motivo de raízes) */
.ap-fim{
	display:flex; justify-content:center;
	padding:2.4rem 0 .4rem;
	color:var(--ap-sage-2);
}
.ap-fim svg{ width:60px; height:auto; }

@media (max-width:680px){
	.ap-day{ --ap-rail:64px; }
	.ap-ev > summary.ap-row{
		grid-template-columns:var(--ap-rail) minmax(0,1fr);
		gap:0 16px; padding-right:.5rem;
	}
	.ap-actions{ grid-column:2; justify-self:start; margin-top:.9rem; }
	/* o painel aberto tapa o eixo da cronologia para não atravessar o texto */
	.ap-panelwrap{ position:relative; z-index:1; background:var(--ap-cream); }
	.ap-panel{ grid-template-columns:1fr; padding-left:0; gap:20px; }
	.ap-day .ap-panel figure.ap-pimg{ margin-left:0 !important; }
}

@media (prefers-reduced-motion:reduce){
	.ap-day *{ transition:none !important; }
}
