/* =========================================================
   KESLAN - MODERN VIDEO
   Video Keslan - Ditjen Kesehatan Lanjutan

   Theme:
   Minimalis
   Modern
   Elegan
   Informatif
   ========================================================= */

/* =========================================================
   VARIABLES
   ========================================================= */

.modern-video {
	--video-primary: #0ab7a3;
	--video-primary-dark: #078f84;

	--video-primary-soft: rgba(10, 183, 163, 0.09);

	--video-text: #123f55;
	--video-text-soft: #6f7c7e;

	--video-border: #e5eeeb;

	--video-white: #ffffff;

	padding: 55px 0 80px;

	background: linear-gradient(180deg, #ffffff 0%, #f8fbfa 100%);
}

/* =========================================================
   VIDEO GRID
   ========================================================= */

.video-grid {
	display: grid;

	grid-template-columns: repeat(3, minmax(0, 1fr));

	gap: 38px 28px;

	align-items: start;

	perspective: 1200px;
}

/* =========================================================
   VIDEO CARD
   ========================================================= */

.video-card {
	position: relative;

	min-width: 0;

	opacity: 0;

	animation: videoCardAppear 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;

	transition:
		transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
		filter 0.45s ease;
}

/* =========================================================
   PARALLAX / POKER CARD ARRANGEMENT
   ========================================================= */

/*
 * Setiap kartu diberi sedikit kemiringan
 * dan posisi vertikal yang berbeda.
 */

/* Kartu 1, 4, 7, ... */

.video-card:nth-child(3n + 1) {
	transform: translateY(8px) rotate(-1.5deg);

	animation-delay: 0.05s;
}

/* Kartu 2, 5, 8, ... */

.video-card:nth-child(3n + 2) {
	transform: translateY(-8px) rotate(1.2deg);

	animation-delay: 0.12s;
}

/* Kartu 3, 6, 9, ... */

.video-card:nth-child(3n + 3) {
	transform: translateY(10px) rotate(-0.8deg);

	animation-delay: 0.19s;
}

/* =========================================================
   HOVER
   ========================================================= */

.video-card:hover {
	z-index: 10;

	transform: translateY(-10px) rotate(0deg) scale(1.025);

	filter: drop-shadow(0 20px 30px rgba(24, 61, 55, 0.15));
}

/* =========================================================
   CARD INNER
   ========================================================= */

.video-card-inner {
	overflow: hidden;

	border: 1px solid var(--video-border);

	border-radius: 20px;

	background: var(--video-white);

	box-shadow: 0 10px 28px rgba(31, 62, 57, 0.065);

	transition:
		box-shadow 0.45s ease,
		border-color 0.45s ease;
}

.video-card:hover .video-card-inner {
	border-color: rgba(10, 183, 163, 0.25);

	box-shadow: 0 20px 42px rgba(31, 62, 57, 0.13);
}

/* =========================================================
   VIDEO EMBED
   ========================================================= */

.video-embed {
	position: relative;

	width: 100%;

	aspect-ratio: 16 / 9;

	overflow: hidden;

	background: #102f3a;
}

/* =========================================================
   YOUTUBE IFRAME
   ========================================================= */

.video-embed iframe {
	position: absolute;

	top: 0;
	left: 0;

	width: 100%;
	height: 100%;

	border: 0;

	transition:
		transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1),
		filter 0.5s ease;
}

/* =========================================================
   VIDEO HOVER ZOOM
   ========================================================= */

.video-card:hover .video-embed iframe {
	transform: scale(1.035);
}

/* =========================================================
   VIDEO LABEL
   ========================================================= */

.video-label {
	position: absolute;

	left: 14px;
	bottom: 14px;

	display: inline-flex;

	align-items: center;

	gap: 6px;

	padding: 6px 10px;

	border: 1px solid rgba(255, 255, 255, 0.22);

	border-radius: 7px;

	background: rgba(13, 31, 35, 0.78);

	color: #ffffff;

	font-size: 10px;

	font-weight: 700;

	letter-spacing: 0.2px;

	backdrop-filter: blur(6px);

	-webkit-backdrop-filter: blur(6px);

	pointer-events: none;
}

.video-label i {
	color: #63dfd2;

	font-size: 9px;
}

/* =========================================================
   CARD CONTENT
   ========================================================= */

.video-card-content {
	padding: 18px 19px 20px;
}

/* =========================================================
   DATE
   ========================================================= */

.video-date {
	display: flex;

	align-items: center;

	gap: 7px;

	margin-bottom: 9px;

	color: #8a9695;

	font-size: 11px;

	line-height: 1.4;
}

.video-date i {
	color: var(--video-primary);

	font-size: 11px;
}

/* =========================================================
   TITLE
   ========================================================= */

.video-title {
	min-height: 48px;

	margin: 0;
}

.video-title a {
	display: -webkit-box;

	overflow: hidden;

	color: var(--video-text);

	font-size: 16px;

	line-height: 1.45;

	font-weight: 700;

	letter-spacing: -0.2px;

	text-decoration: none;

	-webkit-line-clamp: 2;

	-webkit-box-orient: vertical;

	transition: color 0.25s ease;
}

.video-title a:hover {
	color: var(--video-primary);

	text-decoration: none;
}

/* =========================================================
   DETAIL / WATCH VIDEO
   ========================================================= */

.video-detail {
	display: inline-flex;

	align-items: center;

	gap: 8px;

	margin-top: 17px;

	color: var(--video-primary);

	font-size: 11px;

	font-weight: 800;

	letter-spacing: 0.3px;

	text-transform: uppercase;

	text-decoration: none;

	transition: color 0.25s ease;
}

.video-detail:hover {
	color: var(--video-primary-dark);

	text-decoration: none;
}

.video-detail i {
	font-size: 10px;

	transition: transform 0.25s ease;
}

.video-detail:hover i {
	transform: translateX(4px);
}

/* =========================================================
   PAGINATION
   ========================================================= */

.video-pagination {
	margin-top: 58px;
}

/* =========================================================
   EMPTY STATE
   ========================================================= */

.video-empty {
	max-width: 600px;

	margin: 25px auto 20px;

	padding: 60px 30px;

	text-align: center;

	border: 1px solid var(--video-border);

	border-radius: 22px;

	background: #ffffff;

	box-shadow: 0 15px 40px rgba(31, 62, 57, 0.05);
}

/* =========================================================
   EMPTY ICON
   ========================================================= */

.video-empty-icon {
	width: 72px;
	height: 72px;

	display: flex;

	align-items: center;
	justify-content: center;

	margin: 0 auto;

	border-radius: 50%;

	background: var(--video-primary-soft);

	color: var(--video-primary);

	font-size: 28px;
}

/* =========================================================
   EMPTY EYEBROW
   ========================================================= */

.video-empty-eyebrow {
	display: block;

	margin-top: 20px;

	color: var(--video-primary);

	font-size: 10px;

	font-weight: 800;

	letter-spacing: 1.5px;
}

/* =========================================================
   EMPTY TITLE
   ========================================================= */

.video-empty h2 {
	margin: 7px 0 8px;

	color: var(--video-text);

	font-size: 25px;

	font-weight: 700;
}

/* =========================================================
   EMPTY DESCRIPTION
   ========================================================= */

.video-empty p {
	margin: 0;

	color: var(--video-text-soft);

	font-size: 14px;

	line-height: 1.7;
}

/* =========================================================
   EMPTY BUTTON
   ========================================================= */

.video-empty-button {
	display: inline-flex;

	align-items: center;

	gap: 7px;

	margin-top: 22px;

	padding: 10px 18px;

	border-radius: 9px;

	background: var(--video-primary);

	color: #ffffff;

	font-size: 13px;

	font-weight: 600;

	text-decoration: none;

	transition:
		transform 0.25s ease,
		background-color 0.25s ease,
		box-shadow 0.25s ease;
}

.video-empty-button:hover {
	transform: translateY(-2px);

	background: var(--video-primary-dark);

	color: #ffffff;

	text-decoration: none;

	box-shadow: 0 8px 20px rgba(10, 183, 163, 0.2);
}

/* =========================================================
   CARD APPEAR ANIMATION
   ========================================================= */

@keyframes videoCardAppear {
	from {
		opacity: 0;

		transform: translateY(35px) rotate(0deg);
	}

	to {
		opacity: 1;
	}
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1199px) {
	.modern-video {
		padding: 45px 0 65px;
	}

	.video-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		gap: 32px 22px;
	}

	.video-title a {
		font-size: 15px;
	}
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {
	.modern-video {
		padding: 35px 0 55px;
	}

	.video-grid {
		grid-template-columns: 1fr;

		gap: 25px;
	}

	/*
     * Pada mobile kartu dibuat lebih stabil
     * supaya tidak terlalu miring.
     */

	.video-card:nth-child(3n + 1),
	.video-card:nth-child(3n + 2),
	.video-card:nth-child(3n + 3) {
		transform: translateY(0) rotate(0deg);
	}

	.video-card:hover {
		transform: translateY(-6px) rotate(0deg) scale(1.01);
	}

	.video-card-content {
		padding: 15px 16px 18px;
	}

	.video-title {
		min-height: auto;
	}

	.video-title a {
		font-size: 14px;
	}

	.video-detail {
		margin-top: 14px;

		font-size: 10px;
	}

	.video-pagination {
		margin-top: 45px;
	}
}

/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {
	.video-grid {
		gap: 22px;
	}

	.video-card {
		transform: rotate(0deg) !important;
	}

	.video-card-inner {
		border-radius: 17px;
	}

	.video-card-content {
		padding: 14px 15px 17px;
	}

	.video-date {
		font-size: 10px;
	}

	.video-title a {
		font-size: 13px;

		line-height: 1.4;
	}

	.video-empty {
		padding: 45px 20px;
	}
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
	.video-card {
		animation: none;

		opacity: 1;

		transition: none;
	}

	.video-card,
	.video-card-inner,
	.video-embed iframe,
	.video-title a,
	.video-detail,
	.video-detail i,
	.video-empty-button {
		transition: none;
	}
}
