/* Instagram Feeds — front-end styles */

.if-feed {
	--if-columns-desktop: 4;
	--if-columns-tablet: 3;
	--if-columns-mobile: 2;
	--if-spacing: 8px;
	--if-slider-aspect: auto;
	box-sizing: border-box;
}
.if-feed * { box-sizing: border-box; }

/* Header */
.if-feed-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.if-avatar { width: 44px; height: 44px; border-radius: 50%; background: #eee; display: inline-block; flex-shrink: 0; }
.if-feed-header-text { flex: 1 1 auto; min-width: 0; }
.if-username { font-weight: 600; }
.if-bio { margin: 2px 0 0; font-size: 0.85em; color: #555; }
.if-follow-btn { padding: 6px 14px; border-radius: 6px; background: #0095f6; color: #fff; text-decoration: none; font-size: 0.85em; white-space: nowrap; }

/* Grid layout (default) */
.if-layout-grid .if-feed-grid,
.if-layout-highlight .if-feed-grid {
	display: grid;
	grid-template-columns: repeat(var(--if-columns-mobile), 1fr);
	gap: var(--if-spacing);
}
@media (min-width: 600px) {
	.if-layout-grid .if-feed-grid, .if-layout-highlight .if-feed-grid { grid-template-columns: repeat(var(--if-columns-tablet), 1fr); }
}
@media (min-width: 1024px) {
	.if-layout-grid .if-feed-grid, .if-layout-highlight .if-feed-grid { grid-template-columns: repeat(var(--if-columns-desktop), 1fr); }
}
.if-layout-grid .if-feed-item img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: 100%; }

/* Masonry layout */
.if-layout-masonry .if-feed-grid {
	columns: var(--if-columns-mobile);
	column-gap: var(--if-spacing);
}
@media (min-width: 600px) { .if-layout-masonry .if-feed-grid { columns: var(--if-columns-tablet); } }
@media (min-width: 1024px) { .if-layout-masonry .if-feed-grid { columns: var(--if-columns-desktop); } }
.if-layout-masonry .if-feed-item { break-inside: avoid; margin-bottom: var(--if-spacing); }
.if-layout-masonry .if-feed-item img { width: 100%; height: auto; display: block; }

/* Row layout */
.if-layout-row .if-feed-grid { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: var(--if-spacing); scroll-snap-type: x mandatory; }
.if-layout-row .if-feed-item { flex: 0 0 auto; width: 220px; scroll-snap-align: start; }
.if-layout-row .if-feed-item img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

/* Slider layout — uses the configurable aspect ratio control */
.if-slider-wrap { position: relative; }
.if-layout-slider .if-feed-grid {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: var(--if-spacing);
	scrollbar-width: none;      /* Firefox */
	-ms-overflow-style: none;   /* legacy Edge/IE */
}
.if-layout-slider .if-feed-grid::-webkit-scrollbar { display: none; } /* Chrome/Safari/Edge */

/* Item width is derived from the column count so exactly N items are ever
   fully visible per breakpoint — no partial/cut-off slide. */
.if-layout-slider .if-feed-item {
	flex: 0 0 calc((100% - (var(--if-slider-mobile-items) - 1) * var(--if-spacing)) / var(--if-slider-mobile-items));
	scroll-snap-align: start;
}
@media (min-width: 600px) {
	.if-layout-slider .if-feed-item {
		flex-basis: calc((100% - (var(--if-columns-tablet) - 1) * var(--if-spacing)) / var(--if-columns-tablet));
	}
}
@media (min-width: 1024px) {
	.if-layout-slider .if-feed-item {
		flex-basis: calc((100% - (var(--if-columns-desktop) - 1) * var(--if-spacing)) / var(--if-columns-desktop));
	}
}
.if-layout-slider .if-feed-item img,
.if-layout-slider .if-feed-item video { width: 100%; aspect-ratio: var(--if-slider-aspect); object-fit: cover; display: block; }

/* Slider nav arrows */
.if-slider-nav { display: flex; z-index: 3; }
.if-slider-arrow {
	width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%;
	background: rgba(255,255,255,.85); box-shadow: 0 1px 4px rgba(0,0,0,.2);
	display: flex; align-items: center; justify-content: center;
	color: #333; cursor: pointer;
}
.if-slider-arrow:hover { background: #fff; }
.if-slider-arrow-icon { width: 18px; height: 18px; display: block; }

/* Overlay position (default): arrows float centered over the slide edges */
.if-slider-wrap[data-arrows-mobile="overlay"] .if-slider-nav {
	position: absolute; inset: 0; display: flex; justify-content: space-between;
	align-items: center; padding: 0 6px; pointer-events: none;
}
.if-slider-wrap[data-arrows-mobile="overlay"] .if-slider-arrow { pointer-events: auto; }
.if-slider-wrap[data-arrows-mobile="below"] .if-slider-nav {
	position: static; justify-content: center; gap: 12px; margin-top: 10px;
}
@media (min-width: 600px) {
	.if-slider-wrap[data-arrows-tablet="overlay"] .if-slider-nav {
		position: absolute; inset: 0; display: flex; justify-content: space-between;
		align-items: center; padding: 0 6px; pointer-events: none; margin-top: 0;
	}
	.if-slider-wrap[data-arrows-tablet="overlay"] .if-slider-arrow { pointer-events: auto; }
	.if-slider-wrap[data-arrows-tablet="below"] .if-slider-nav {
		position: static; justify-content: center; gap: 12px; margin-top: 10px;
	}
}
@media (min-width: 1024px) {
	.if-slider-wrap[data-arrows-desktop="overlay"] .if-slider-nav {
		position: absolute; inset: 0; display: flex; justify-content: space-between;
		align-items: center; padding: 0 6px; pointer-events: none; margin-top: 0;
	}
	.if-slider-wrap[data-arrows-desktop="overlay"] .if-slider-arrow { pointer-events: auto; }
	.if-slider-wrap[data-arrows-desktop="below"] .if-slider-nav {
		position: static; justify-content: center; gap: 12px; margin-top: 10px;
	}
}

/* Shared item chrome */
.if-feed-item { position: relative; margin: 0; }
.if-item-trigger { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.if-viewer-none .if-item-trigger { cursor: default; }
.if-item-trigger img { display: block; border-radius: 4px; }
.if-badge { position: absolute; top: 8px; right: 8px; width: 18px; height: 18px; }
.if-caption { font-size: 0.85em; margin: 6px 0 2px; }
.if-meta { display: flex; gap: 10px; font-size: 0.75em; color: #777; }

.if-load-more { margin-top: 16px; padding: 10px 20px; border: 1px solid #ccc; background: #fff; border-radius: 6px; cursor: pointer; }
.if-feed-empty { padding: 24px; text-align: center; color: #777; border: 1px dashed #ddd; border-radius: 6px; }

/* Popup lightbox */
.if-lightbox-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 100000; display: flex; align-items: center; justify-content: center; }
.if-lightbox-content { max-width: 90vw; max-height: 90vh; background: #fff; border-radius: 8px; overflow: hidden; display: flex; }
.if-lightbox-media { max-width: 60vw; max-height: 90vh; object-fit: contain; background: #000; }
.if-lightbox-close { position: absolute; top: 16px; right: 24px; color: #fff; font-size: 28px; background: none; border: 0; cursor: pointer; }

/* Immersive side-panel viewer */
.if-panel-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 100000; display: flex; justify-content: flex-end; }
.if-panel { width: min(480px, 100vw); height: 100%; background: #fff; overflow-y: scroll; scroll-snap-type: y mandatory; }
.if-panel-post { scroll-snap-align: start; min-height: 100%; padding-bottom: 24px; border-bottom: 1px solid #eee; }
.if-panel-post video, .if-panel-post img { width: 100%; display: block; }
.if-panel-close { position: absolute; top: 16px; right: 16px; z-index: 2; background: rgba(0,0,0,.5); color: #fff; border: 0; border-radius: 50%; width: 32px; height: 32px; cursor: pointer; }
