/* CCTV Guide cards section (application/views/element/_cctv_guide_section.php) */
.cctv-guide-section {
	--cg-ink: #0f1f3d;
	--cg-muted: #5b6475;
	--cg-accent: #1366d6;
	--cg-accent-tint: #e9f1fe;
	padding: 64px 0 72px;
	background: #f5f8fc;
}
.cctv-guide-section .cg-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 36px;
}
.cctv-guide-section .cg-header-text {
	max-width: 760px;
}
.cctv-guide-section .cg-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	color: var(--cg-accent);
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.cctv-guide-section .cg-eyebrow:before {
	content: "";
	width: 40px;
	height: 2px;
	background: currentColor;
}
.cctv-guide-section .cg-heading {
	margin: 0 0 12px;
	color: var(--cg-ink);
	font-family: 'Montserrat', sans-serif;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	text-align: left;
}
.cctv-guide-section .cg-intro {
	margin: 0;
	color: var(--cg-muted);
	font-size: 17px;
	line-height: 1.7;
}
.cctv-guide-section .cg-view-all {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
	margin-bottom: 64px;
	color: var(--cg-accent);
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	text-decoration: none;
}
.cctv-guide-section .cg-view-all:hover,
.cctv-guide-section .cg-view-all:focus-visible {
	color: #0b4fa8;
}
.cctv-guide-section .cg-view-all i {
	transition: transform .2s ease;
}
.cctv-guide-section .cg-view-all:hover i {
	transform: translateX(4px);
}

/* Card */
.cctv-guide-section .cg-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(15, 31, 61, .08);
	transition: transform .25s ease, box-shadow .25s ease;
}
.cctv-guide-section .cg-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 40px rgba(15, 31, 61, .14);
}
.cctv-guide-section .cg-theme-blue {
	--cg-accent: #1366d6;
	--cg-accent-dark: #0b4fa8;
	--cg-accent-tint: #e9f1fe;
}
.cctv-guide-section .cg-theme-green {
	--cg-accent: #0f9f7a;
	--cg-accent-dark: #0b7d60;
	--cg-accent-tint: #e2f6ef;
}
.cctv-guide-section .cg-theme-purple {
	--cg-accent: #6a52d9;
	--cg-accent-dark: #5440b8;
	--cg-accent-tint: #efebfd;
}
.cctv-guide-section .cg-card-media {
	position: relative;
	display: block;
	aspect-ratio: 10 / 7;
	overflow: hidden;
	background: #e6ebf2;
}
.cctv-guide-section .cg-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.cctv-guide-section .cg-card:hover .cg-card-media img {
	transform: scale(1.04);
}
.cctv-guide-section .cg-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 24px 26px 28px;
}
.cctv-guide-section .cg-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--cg-accent-tint);
	color: var(--cg-accent-dark);
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 600;
}
.cctv-guide-section .cg-badge i {
	color: var(--cg-accent);
}
.cctv-guide-section .cg-card-title {
	margin: 0 0 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}
.cctv-guide-section .cg-card-title a {
	color: var(--cg-ink);
	text-decoration: none;
}
.cctv-guide-section .cg-card-title a:hover,
.cctv-guide-section .cg-card-title a:focus-visible {
	color: var(--cg-accent);
}
.cctv-guide-section .cg-card-excerpt {
	margin: 0 0 24px;
	color: var(--cg-muted);
	font-size: 16px;
	line-height: 1.7;
}
.cctv-guide-section .cg-read-more {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding: 12px 26px;
	border-radius: 999px;
	background: var(--cg-accent);
	color: #fff;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .2s ease;
}
.cctv-guide-section .cg-read-more:hover,
.cctv-guide-section .cg-read-more:focus-visible {
	background: var(--cg-accent-dark);
	color: #fff;
}
.cctv-guide-section .cg-read-more i {
	transition: transform .2s ease;
}
.cctv-guide-section .cg-read-more:hover i {
	transform: translateX(4px);
}
.cctv-guide-section .cg-corner {
	position: absolute;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	width: 100px;
	height: 100px;
	padding: 0 18px 18px 0;
	background: linear-gradient(135deg, transparent 50%, var(--cg-accent-tint) 50%);
	color: var(--cg-accent);
	font-size: 20px;
	pointer-events: none;
}
.cctv-guide-section a:focus-visible {
	outline: 3px solid var(--cg-accent);
	outline-offset: 3px;
}

@media (max-width: 991px) {
	.cctv-guide-section {
		padding: 48px 0 56px;
	}
	.cctv-guide-section .cg-heading {
		font-size: 32px;
	}
}
@media (max-width: 767px) {
	.cctv-guide-section .cg-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		margin-bottom: 28px;
	}
	.cctv-guide-section .cg-heading {
		font-size: 26px;
	}
	.cctv-guide-section .cg-intro {
		font-size: 15px;
	}
	.cctv-guide-section .cg-view-all {
		margin-bottom: 0;
	}
	.cctv-guide-section .cg-card-body {
		padding: 20px 20px 24px;
	}
	.cctv-guide-section .cg-card-title {
		font-size: 19px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.cctv-guide-section .cg-card,
	.cctv-guide-section .cg-card-media img,
	.cctv-guide-section .cg-read-more i,
	.cctv-guide-section .cg-view-all i {
		transition: none;
	}
}
