/* =========================================================================
   Zuka Gallery — inline carousel + fullscreen lightbox
   Brand palette: accent #00a58f · dark #212121 / #292929 · white
   ========================================================================= */
:root{
	--zg-accent:#00a58f;
	--zg-bg:rgba(18,18,18,.94);   /* fullscreen lightbox backdrop */
	--zg-frame:rgba(128,128,128,.18);  /* see-through grey behind the carousel photos */
}

.zuka-gallery{ margin:22px 0; }

/* ---------- Inline carousel ------------------------------------------ */
.zg-c{ position:relative; }

.zg-c__stage{
	position:relative; width:100%; aspect-ratio:16/10;
	overflow:hidden; border-radius:12px; background:var(--zg-frame);
	border:1px solid rgba(0,0,0,.08);
	cursor:zoom-in; outline:none;
}
.zg-c__track{
	display:flex; height:100%;
	transition:transform .5s cubic-bezier(.22,.61,.36,1);
	will-change:transform;
}
.zg-c__slide{
	flex:0 0 100%; height:100%;
	display:flex; align-items:center; justify-content:center;
}
.zg-c__slide img{
	width:100%; height:100%; object-fit:contain; display:block;
	-webkit-user-drag:none; user-select:none;
}
.zg-c__cap{ display:none; } /* caption is shown in the fullscreen view */

/* Arrows */
.zg-c__nav{
	position:absolute; top:50%; transform:translateY(-50%);
	width:40px; height:40px; border:0; border-radius:50%;
	background:rgba(0,0,0,.45); color:#fff; cursor:pointer; z-index:3;
	display:flex; align-items:center; justify-content:center;
	transition:background .2s ease, opacity .2s ease;
}
.zg-c__nav:hover{ background:var(--zg-accent); }
.zg-c__nav svg{
	width:22px; height:22px; fill:none; stroke:currentColor;
	stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.zg-c__prev{ left:10px; }
.zg-c__next{ right:10px; }

/* Counter pill */
.zg-c__counter{
	position:absolute; top:10px; right:10px; z-index:3;
	background:rgba(0,0,0,.55); color:#fff;
	font-size:12px; font-weight:500; line-height:1;
	padding:5px 10px; border-radius:999px;
}

/* Dot indicators */
.zg-c__dots{
	position:absolute; left:50%; bottom:10px; transform:translateX(-50%);
	display:flex; gap:6px; z-index:3;
}
.zg-c__dot{
	width:20px; height:6px; border:0; padding:0; border-radius:999px;
	background:rgba(255,255,255,.4); cursor:pointer;
	transition:background .2s ease, width .2s ease;
}
.zg-c__dot:hover{ background:rgba(255,255,255,.7); }
.zg-c__dot.is-active{ background:var(--zg-accent); width:26px; }

/* Thumbnail strip */
.zg-c__thumbs{
	display:flex; gap:8px; overflow-x:auto; padding:12px 2px 4px;
	scrollbar-width:thin; scrollbar-color:var(--zg-accent) transparent;
}
.zg-c__thumbs::-webkit-scrollbar{ height:6px; }
.zg-c__thumbs::-webkit-scrollbar-thumb{ background:var(--zg-accent); border-radius:3px; }
.zg-c__thumb{
	position:relative; flex:0 0 auto; width:84px; height:60px;
	border:0; padding:0; cursor:pointer; overflow:hidden; border-radius:6px;
	outline:2px solid transparent; outline-offset:-2px; opacity:.6;
	transition:opacity .2s ease, outline-color .2s ease;
}
.zg-c__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.zg-c__thumb:hover{ opacity:.9; }
.zg-c__thumb.is-active{ opacity:1; outline-color:var(--zg-accent); }

@media (max-width:600px){
	.zg-c__thumb{ width:68px; height:48px; }
	.zg-c__nav{ width:34px; height:34px; }
}

/* ---------- Scroll lock while the lightbox is open ------------------- */
html.zg-lock{ overflow:hidden; }

/* ---------- Fullscreen lightbox -------------------------------------- */
.zg-lb{ position:fixed; inset:0; z-index:100000; display:none; }
.zg-lb.is-open{ display:block; }
.zg-lb__overlay{
	position:absolute; inset:0;
	background:var(--zg-bg);
	-webkit-backdrop-filter:blur(4px);
	backdrop-filter:blur(4px);
}
.zg-lb__toolbar{
	position:absolute; top:0; left:0; right:0; height:56px;
	display:flex; align-items:center; justify-content:space-between;
	padding:0 16px; z-index:4; color:#fff;
	background:linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,0));
}
.zg-lb__counter{ font-size:14px; color:#e9e9e9; letter-spacing:.02em; }
.zg-lb__tools{ display:flex; gap:8px; }
.zg-lb__btn{
	width:42px; height:42px; border:0; border-radius:50%;
	background:rgba(255,255,255,.08); color:#fff; cursor:pointer;
	display:inline-flex; align-items:center; justify-content:center;
	transition:background .2s ease;
}
.zg-lb__btn:hover{ background:var(--zg-accent); }
.zg-lb__btn svg{
	width:22px; height:22px; fill:none; stroke:currentColor;
	stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.zg-lb__stage{
	position:absolute; top:56px; left:0; right:0; bottom:108px;
	display:flex; align-items:center; justify-content:center;
	padding:10px 74px; z-index:1;
}
.zg-lb__figure{
	margin:0; max-width:100%; max-height:100%;
	display:flex; flex-direction:column; align-items:center; gap:10px;
}
.zg-lb__img{
	max-width:100%; max-height:100%;
	width:auto; height:auto;               /* natural size, capped to the stage */
	object-fit:contain;
	border-radius:4px;
	box-shadow:0 12px 45px rgba(0,0,0,.55);
	opacity:0; transform:scale(.98);
	transition:opacity .3s ease, transform .3s ease;
}
.zg-lb__img.is-loaded{ opacity:1; transform:none; }
.zg-lb__caption{
	color:#dcdcdc; font-size:13px; line-height:1.4;
	text-align:center; max-width:70ch;
}
.zg-lb__nav{
	position:absolute; top:calc(50% - 26px); transform:translateY(-50%);
	z-index:4; width:48px; height:48px; border:0; border-radius:50%;
	background:rgba(33,33,33,.55); color:#fff; cursor:pointer;
	display:flex; align-items:center; justify-content:center;
	transition:background .2s ease;
}
.zg-lb__nav:hover{ background:var(--zg-accent); }
.zg-lb__nav svg{
	width:26px; height:26px; fill:none; stroke:currentColor;
	stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.zg-lb__prev{ left:14px; }
.zg-lb__next{ right:14px; }
.zg-lb__strip{
	position:absolute; left:0; right:0; bottom:0; height:100px; z-index:4;
	display:flex; gap:8px; align-items:center;
	padding:14px 16px; overflow-x:auto; overflow-y:hidden;
	background:linear-gradient(to top, rgba(8,8,8,.92), rgba(8,8,8,.35));
	scrollbar-width:thin; scrollbar-color:var(--zg-accent) transparent;
}
.zg-lb__strip::-webkit-scrollbar{ height:6px; }
.zg-lb__strip::-webkit-scrollbar-thumb{ background:var(--zg-accent); border-radius:3px; }
.zg-lb__thumb{
	flex:0 0 auto; width:96px; height:64px; border:0; padding:0; cursor:pointer;
	border-radius:4px; background-size:cover; background-position:center;
	opacity:.5; outline:2px solid transparent; outline-offset:-2px;
	transition:opacity .2s ease, outline-color .2s ease;
}
.zg-lb__thumb:hover{ opacity:.85; }
.zg-lb__thumb.is-active{ opacity:1; outline-color:var(--zg-accent); }

@media (max-width:600px){
	.zg-lb__stage{ padding:6px 10px; bottom:92px; }
	.zg-lb__nav{ width:40px; height:40px; }
	.zg-lb__prev{ left:6px; } .zg-lb__next{ right:6px; }
	.zg-lb__strip{ height:80px; padding:10px 12px; }
	.zg-lb__thumb{ width:72px; height:50px; }
}
