/* Elementor Substitute — TOC, post grid and slider */
:root { --esub-accent: #0a7d5a; }

/* Table of contents */
.esub-toc {
	margin: 1.4em 0;
	padding: 1em 1.2em;
	border: 1px solid rgba( 0, 0, 0, 0.1 );
	border-radius: 10px;
	background: rgba( 0, 0, 0, 0.02 );
	font-size: 0.96em;
}
.esub-toc__title {
	margin: 0 0 0.5em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.85em;
	opacity: 0.75;
}
.esub-toc__list { margin: 0; padding: 0; list-style: none; line-height: 1.7; }
.esub-toc__list a { text-decoration: none; border-bottom: 1px solid transparent; }
.esub-toc__list a:hover { border-bottom-color: currentColor; }
.esub-toc__sub { padding-left: 1.2em; font-size: 0.95em; opacity: 0.9; }

/* Post grid */
.esub-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat( var( --esub-cols, 3 ), 1fr );
	margin: 1.2em 0;
}
@media ( max-width: 900px ) { .esub-grid { grid-template-columns: repeat( 2, 1fr ); } }
@media ( max-width: 560px ) { .esub-grid { grid-template-columns: 1fr; } }
.esub-grid__card {
	display: flex;
	flex-direction: column;
	border: 1px solid rgba( 0, 0, 0, 0.09 );
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}
.esub-grid__card:hover {
	border-color: var( --esub-accent );
	box-shadow: 0 10px 30px rgba( 0, 0, 0, 0.09 );
	transform: translateY( -3px );
}
.esub-grid__thumb { display: block; aspect-ratio: 16 / 9; background: #eef2f0 center / cover no-repeat; }
.esub-grid__body { padding: 15px 17px 18px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.esub-grid__title { margin: 0; font-size: 1.04rem; line-height: 1.32; font-weight: 600; }
.esub-grid__title a { color: inherit; text-decoration: none; }
.esub-grid__title a:hover { color: var( --esub-accent ); }
.esub-grid__exc { margin: 0; font-size: 0.9rem; opacity: 0.72; line-height: 1.55; }
.esub-grid__more { margin-top: auto; font-size: 0.85rem; font-weight: 700; color: var( --esub-accent ); letter-spacing: 0.01em; }
.esub-grid__card a:focus-visible { outline: 2px solid var( --esub-accent ); outline-offset: 2px; }

/* Slider / banner */
.esub-slider__single { display: block; width: 100%; height: auto; border-radius: 12px; }
.esub-slider {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	border-radius: 12px;
	-webkit-overflow-scrolling: touch;
}
.esub-slider__slide { flex: 0 0 100%; scroll-snap-align: center; }
.esub-slider__slide img { display: block; width: 100%; height: auto; border-radius: 12px; }
.esub-slider::-webkit-scrollbar { height: 8px; }
.esub-slider::-webkit-scrollbar-thumb { background: var( --esub-accent ); border-radius: 8px; opacity: 0.6; }

@media ( prefers-color-scheme: dark ) {
	.esub-toc { border-color: rgba( 255, 255, 255, 0.14 ); background: rgba( 255, 255, 255, 0.04 ); }
	.esub-grid__card { background: #241e1a; border-color: rgba( 255, 255, 255, 0.12 ); }
	.esub-grid__thumb { background-color: #2a2a2a; }
}
