/* ============================================================== Gallery page
   Filter bar, image grid tiles and the fullscreen lightbox. */

.al-gallery-block { width: 100%; }

.al-gallery__item {
	position: relative;
	display: block;
	cursor: zoom-in;
}

.al-gallery__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 20px 24px;
	text-align: left;
	color: #fff;
	font-family: var(--body-font);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.al-gallery__item:hover .al-gallery__label,
.al-gallery__item:focus-visible .al-gallery__label {
	opacity: 1;
	transform: translateY(0);
}

/* Lightbox */
.al-gallerybox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	background: rgba(9, 20, 34, 0.95);
}

.al-gallerybox[hidden] { display: none; }

.al-gallerybox__stage {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	max-width: 92vw;
	max-height: 90vh;
}

.al-gallerybox__stage img {
	max-width: 92vw;
	max-height: 78vh;
	object-fit: contain;
	border-radius: 12px;
}

.al-gallerybox__caption {
	color: rgba(255, 255, 255, 0.72);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.al-gallerybox__close {
	position: absolute;
	top: 14px;
	right: 24px;
	background: none;
	border: 0;
	color: #fff;
	font-size: 40px;
	line-height: 1;
	cursor: pointer;
	opacity: 0.85;
}

.al-gallerybox__close:hover { opacity: 1; }

.al-gallerybox__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 9999px;
	background: transparent;
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease;
}

.al-gallerybox__nav:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.6);
}

.al-gallerybox__prev { left: 24px; }
.al-gallerybox__next { right: 24px; }

.al-gallerybox__count {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 24px;
	text-align: center;
	color: rgba(255, 255, 255, 0.6);
	font-size: 13px;
	letter-spacing: 0.2em;
}

@media (max-width: 640px) {
	.al-gallerybox { padding: 16px; }
	.al-gallerybox__nav { width: 44px; height: 44px; font-size: 22px; }
	.al-gallerybox__prev { left: 8px; }
	.al-gallerybox__next { right: 8px; }
	.al-gallerybox__close { top: 8px; right: 12px; }
}

/* ============================================================= Services page
   Each service is an icon badge beside a title and paragraph. */

.al-svc-row__inner {
	display: flex;
	align-items: flex-start;
	gap: 36px;
	max-width: 1000px;
	margin: 0 auto;
}

.al-svc-row__icon { flex: none; }

.al-svc-row__body { flex: 1; min-width: 0; }

@media (max-width: 640px) {
	.al-svc-row__inner { flex-direction: column; gap: 20px; }
}
