/* YV Insta Feed */
.yvif-feed { max-width: 100%; margin: 0 auto; }

/* Header (wie Instagram-Profil) */
.yvif-header { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.yvif-avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.yvif-header-info { flex: 1 1 auto; min-width: 180px; }
.yvif-username a { font-weight: 700; font-size: 1.1em; text-decoration: none; color: inherit; }
.yvif-stats { display: flex; gap: 16px; font-size: 0.9em; margin-top: 2px; }
.yvif-bio { font-size: 0.85em; opacity: 0.8; margin-top: 4px; white-space: pre-line; }
.yvif-follow {
	display: inline-block; background: #0095f6; color: #fff !important; font-weight: 600;
	padding: 7px 18px; border-radius: 8px; text-decoration: none; font-size: 0.9em;
}
.yvif-follow:hover { background: #1877f2; color: #fff; }
.yvif-footer { text-align: center; margin-top: 16px; }

/* Grid */
.yvif-grid {
	display: grid;
	grid-template-columns: repeat(var(--yvif-cols, 3), 1fr);
	gap: var(--yvif-gap, 8px);
}
@media (max-width: 782px) {
	.yvif-grid { grid-template-columns: repeat(min(var(--yvif-cols, 3), 3), 1fr); }
}
@media (max-width: 480px) {
	.yvif-grid { grid-template-columns: repeat(min(var(--yvif-cols, 3), 2), 1fr); }
}
.yvif-item {
	position: relative; padding: 0; border: 0; background: #eee; cursor: pointer;
	aspect-ratio: 1 / 1; overflow: hidden; display: block; width: 100%;
}
.yvif-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease, opacity .25s ease; }
.yvif-item:hover img { transform: scale(1.04); opacity: 0.9; }
.yvif-badge {
	position: absolute; top: 8px; right: 8px; z-index: 2; color: #fff; font-size: 14px;
	text-shadow: 0 1px 3px rgba(0,0,0,.6); pointer-events: none;
}

/* Mehr-Button */
.yvif-more-wrap { text-align: center; margin-top: 16px; }
.yvif-more {
	background: transparent; border: 1px solid currentColor; border-radius: 8px;
	padding: 9px 26px; cursor: pointer; font-weight: 600; font-size: 0.9em;
}
.yvif-more[disabled] { opacity: 0.5; cursor: wait; }

/* Lightbox */
.yvif-lb {
	position: fixed; inset: 0; z-index: 99999; background: rgba(0,0,0,.85);
	display: flex; align-items: center; justify-content: center; padding: 24px;
}
.yvif-lb-inner {
	display: flex; background: #fff; border-radius: 6px; overflow: hidden;
	max-width: min(1100px, 96vw); max-height: 90vh; width: 100%;
}
.yvif-lb-media {
	position: relative; flex: 1 1 62%; background: #000; display: flex;
	align-items: center; justify-content: center; min-height: 300px;
}
.yvif-lb-media img, .yvif-lb-media video { max-width: 100%; max-height: 90vh; display: block; }
.yvif-lb-side {
	flex: 1 1 38%; max-width: 400px; display: flex; flex-direction: column;
	padding: 18px; overflow-y: auto; font-size: 0.9em; line-height: 1.5;
}
.yvif-lb-caption { white-space: pre-line; flex: 1 1 auto; }
.yvif-lb-date { opacity: 0.6; font-size: 0.85em; margin: 10px 0; }
.yvif-lb-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.yvif-lb-link {
	display: inline-block; border: 1px solid #0095f6; color: #0095f6 !important;
	padding: 6px 14px; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: 0.9em;
}
.yvif-lb-close, .yvif-lb-prev, .yvif-lb-next, .yvif-lb-cprev, .yvif-lb-cnext {
	position: absolute; background: rgba(0,0,0,.45); color: #fff; border: 0; cursor: pointer;
	width: 40px; height: 40px; border-radius: 50%; font-size: 18px; line-height: 1;
	display: flex; align-items: center; justify-content: center; z-index: 3;
}
.yvif-lb-close { top: 14px; right: 14px; }
.yvif-lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.yvif-lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
.yvif-lb-cprev { left: 10px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; font-size: 14px; }
.yvif-lb-cnext { right: 10px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; font-size: 14px; }
.yvif-lb-dots { position: absolute; bottom: 10px; left: 0; right: 0; text-align: center; z-index: 3; }
.yvif-lb-dots span {
	display: inline-block; width: 7px; height: 7px; border-radius: 50%;
	background: rgba(255,255,255,.5); margin: 0 3px;
}
.yvif-lb-dots span.on { background: #fff; }

@media (max-width: 700px) {
	.yvif-lb { padding: 0; }
	.yvif-lb-inner { flex-direction: column; max-height: 100vh; border-radius: 0; }
	.yvif-lb-media { flex: 0 0 auto; }
	.yvif-lb-media img, .yvif-lb-media video { max-height: 60vh; }
	.yvif-lb-side { max-width: none; }
	.yvif-lb-prev, .yvif-lb-next { display: none; }
}
