:root{
	--gallery-ink:#20231f;
	--gallery-muted:#6c7069;
	--gallery-cream:#f4f0e7;
	--gallery-gold:#b89454;
	--gallery-green:#3f5140;
}

.gallery-page{
	background:#fff;
	color:var(--gallery-ink);
}

.gallery-section-kicker{
	display:block;
	margin-bottom:10px;
	color:var(--gallery-gold);
	font-size:.75rem;
	font-weight:700;
	letter-spacing:.18em;
	text-transform:uppercase;
}

.gallery-content{
	padding:72px 0 90px;
	scroll-margin-top:80px;
}

.gallery-section-heading,
.gallery-selection-heading{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:32px;
	margin-bottom:28px;
}

.gallery-section-heading h2,
.gallery-selection-heading h2{
	margin:0;
	color:var(--gallery-ink);
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(2rem,4vw,3.2rem);
	font-weight:400;
	line-height:1.06;
}

.gallery-section-heading > p{
	margin:0 0 5px;
	color:var(--gallery-muted);
	font-size:.9rem;
}

.gallery-category-list{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
}

.gallery-category-card{
	position:relative;
	display:block;
	min-height:210px;
	overflow:hidden;
	border-radius:4px;
	background:#30362f;
	box-shadow:0 10px 28px rgba(29,34,27,.12);
	color:#fff;
	text-decoration:none;
	isolation:isolate;
}

.gallery-category-visual,
.gallery-category-visual img,
.gallery-category-overlay{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}

.gallery-category-visual img{
	object-fit:cover;
	transition:transform .5s ease;
}

.gallery-category-placeholder{
	display:grid;
	width:100%;
	height:100%;
	place-items:center;
	background:linear-gradient(145deg,#526151,#293129);
	color:rgba(255,255,255,.42);
	font-size:2.3rem;
}

.gallery-category-overlay{
	z-index:1;
	background:linear-gradient(180deg,rgba(20,24,19,.04) 20%,rgba(20,24,19,.9) 100%);
	transition:background .25s ease;
}

.gallery-category-copy{
	position:absolute;
	z-index:2;
	right:58px;
	bottom:22px;
	left:22px;
	display:flex;
	flex-direction:column;
	gap:3px;
}

.gallery-category-copy strong{
	color:#fff;
	font-family:Georgia,"Times New Roman",serif;
	font-size:1.45rem;
	font-weight:400;
	line-height:1.15;
}

.gallery-category-copy span{
	color:rgba(255,255,255,.72);
	font-size:.75rem;
	font-weight:600;
	letter-spacing:.08em;
	text-transform:uppercase;
}

.gallery-category-arrow{
	position:absolute;
	z-index:2;
	right:20px;
	bottom:22px;
	display:grid;
	width:34px;
	height:34px;
	place-items:center;
	border:1px solid rgba(255,255,255,.5);
	border-radius:50%;
	font-size:.75rem;
	transition:background .2s ease,transform .2s ease;
}

.gallery-category-card:hover,
.gallery-category-card:focus{
	color:#fff;
	text-decoration:none;
}

.gallery-category-card:hover .gallery-category-visual img,
.gallery-category-card:focus .gallery-category-visual img{
	transform:scale(1.055);
}

.gallery-category-card:hover .gallery-category-arrow,
.gallery-category-card:focus .gallery-category-arrow{
	transform:translateX(3px);
	background:rgba(255,255,255,.16);
}

.gallery-category-card.is-active{
	outline:3px solid var(--gallery-gold);
	outline-offset:3px;
}

.gallery-category-card.is-active::after{
	content:"Ausgewählt";
	position:absolute;
	z-index:3;
	top:14px;
	left:14px;
	padding:6px 10px;
	border-radius:2px;
	background:var(--gallery-gold);
	color:#fff;
	font-size:.65rem;
	font-weight:800;
	letter-spacing:.1em;
	text-transform:uppercase;
}

.gallery-selection{
	margin-top:82px;
	padding-top:64px;
	border-top:1px solid #e5e2dc;
	scroll-margin-top:90px;
}

.gallery-page.has-active-category .gallery-selection{
	margin-top:0;
	padding-top:0;
	border-top:0;
}

.gallery-back-link{
	display:inline-flex;
	align-items:center;
	gap:11px;
	margin-bottom:28px;
	color:var(--gallery-green);
	font-size:.78rem;
	font-weight:700;
	letter-spacing:.08em;
	text-decoration:none;
	text-transform:uppercase;
}

.gallery-back-link i{
	display:grid;
	width:36px;
	height:36px;
	place-items:center;
	border:1px solid #cbc6bc;
	border-radius:50%;
	transition:background .2s ease,color .2s ease,transform .2s ease;
}

.gallery-back-link:hover,
.gallery-back-link:focus{
	color:var(--gallery-green);
	text-decoration:none;
}

.gallery-back-link:hover i,
.gallery-back-link:focus i{
	background:var(--gallery-green);
	color:#fff;
	transform:translateX(-3px);
}

.gallery-selection-heading{
	align-items:center;
}

.gallery-selection-heading p{
	max-width:640px;
	margin:12px 0 0;
	color:var(--gallery-muted);
	line-height:1.65;
}

.gallery-image-count{
	display:inline-flex;
	flex:0 0 auto;
	align-items:center;
	gap:9px;
	padding:10px 15px;
	border:1px solid #dcd8d0;
	border-radius:999px;
	color:var(--gallery-muted);
	font-size:.82rem;
	font-weight:600;
}

.gallery-grid{
	display:grid;
	grid-auto-flow:dense;
	grid-auto-rows:210px;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:12px;
}

.gallery-item{
	position:relative;
	display:block;
	min-width:0;
	overflow:hidden;
	border-radius:3px;
	background:#e8e6df;
	color:#fff;
	text-decoration:none;
}

.gallery-item:nth-child(8n+1),
.gallery-item:nth-child(8n+6){
	grid-row:span 2;
}

.gallery-item:nth-child(8n+4){
	grid-column:span 2;
}

.gallery-item-image,
.gallery-item-image img,
.gallery-item-shade{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
}

.gallery-item-image img{
	display:block;
	object-fit:cover;
	transition:transform .45s ease;
}

.gallery-item-shade{
	background:linear-gradient(180deg,transparent 45%,rgba(11,13,10,.76) 100%);
	opacity:.8;
	transition:opacity .25s ease;
}

.gallery-item-type{
	position:absolute;
	top:14px;
	right:14px;
	display:inline-flex;
	align-items:center;
	gap:7px;
	padding:7px 10px;
	border:1px solid rgba(255,255,255,.52);
	border-radius:999px;
	background:rgba(20,24,19,.34);
	color:#fff;
	font-size:.7rem;
	font-weight:700;
	letter-spacing:.04em;
	backdrop-filter:blur(5px);
	opacity:0;
	transform:translateY(-5px);
	transition:opacity .2s ease,transform .2s ease;
}

.gallery-item-type.is-360{
	opacity:1;
	transform:none;
	background:rgba(184,148,84,.88);
	border-color:transparent;
}

.gallery-item-caption{
	position:absolute;
	right:18px;
	bottom:16px;
	left:18px;
	overflow:hidden;
	color:#fff;
	font-family:Georgia,"Times New Roman",serif;
	font-size:1.05rem;
	line-height:1.3;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.gallery-item:hover,
.gallery-item:focus{
	color:#fff;
	text-decoration:none;
}

.gallery-item:hover .gallery-item-image img,
.gallery-item:focus .gallery-item-image img{
	transform:scale(1.045);
}

.gallery-item:hover .gallery-item-shade,
.gallery-item:focus .gallery-item-shade{
	opacity:1;
}

.gallery-item:hover .gallery-item-type,
.gallery-item:focus .gallery-item-type{
	opacity:1;
	transform:none;
}

.gallery-empty{
	padding:64px 24px;
	border:1px dashed #d2cec5;
	background:var(--gallery-cream);
	text-align:center;
}

.gallery-empty > i{
	margin-bottom:18px;
	color:var(--gallery-gold);
	font-size:2.5rem;
}

.gallery-empty h2,
.gallery-empty h3{
	margin:0 0 8px;
	color:var(--gallery-ink);
	font-family:Georgia,"Times New Roman",serif;
	font-weight:400;
}

.gallery-empty p{
	margin:0;
	color:var(--gallery-muted);
}

.gallery-category-pagination{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	margin-top:46px;
	border-top:1px solid #ddd9d1;
	border-bottom:1px solid #ddd9d1;
}

.gallery-category-pagination a{
	display:flex;
	align-items:center;
	gap:16px;
	min-height:100px;
	padding:18px 4px;
	color:var(--gallery-ink);
	text-decoration:none;
}

.gallery-category-pagination a + a{
	border-left:1px solid #ddd9d1;
	padding-left:28px;
}

.gallery-category-pagination .is-next{
	justify-content:flex-end;
	text-align:right;
}

.gallery-category-pagination .is-next:only-child{
	grid-column:2;
	border-left:1px solid #ddd9d1;
	padding-left:28px;
}

.gallery-category-pagination a > i{
	display:grid;
	flex:0 0 auto;
	width:38px;
	height:38px;
	place-items:center;
	border:1px solid #cbc6bc;
	border-radius:50%;
	color:var(--gallery-green);
	transition:background .2s ease,color .2s ease,transform .2s ease;
}

.gallery-category-pagination span{
	display:flex;
	flex-direction:column;
	gap:7px;
	line-height:1;
}

.gallery-category-pagination small{
	color:var(--gallery-muted);
	font-size:.68rem;
	font-weight:700;
	letter-spacing:.1em;
	line-height:1.35;
	text-transform:uppercase;
}

.gallery-category-pagination strong{
	font-family:Georgia,"Times New Roman",serif;
	font-size:1.1rem;
	font-weight:400;
	line-height:1.3;
}

.gallery-category-pagination a:hover{
	color:var(--gallery-green);
	text-decoration:none;
}

.gallery-category-pagination a:hover > i{
	background:var(--gallery-green);
	color:#fff;
	transform:translateX(-3px);
}

.gallery-category-pagination .is-next:hover > i{
	transform:translateX(3px);
}

.gallery-lightbox .mfp-counter{
	font-size:.8rem;
}

.gallery-lightbox .mfp-title{
	padding-top:5px;
	font-size:.9rem;
	line-height:1.45;
}

@media (max-width:991px){
	.gallery-category-list{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.gallery-grid{
		grid-auto-rows:180px;
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.gallery-item:nth-child(8n+4){
		grid-column:span 1;
	}
}

@media (max-width:767px){
	.gallery-content{
		padding:52px 0 68px;
	}

	.gallery-section-heading,
	.gallery-selection-heading{
		align-items:flex-start;
		flex-direction:column;
		gap:14px;
	}

	.gallery-category-list{
		display:flex;
		gap:12px;
		padding:4px 4px 12px;
		overflow-x:auto;
		scroll-snap-type:x mandatory;
		scrollbar-width:none;
	}

	.gallery-category-list::-webkit-scrollbar{
		display:none;
	}

	.gallery-category-card{
		flex:0 0 min(78vw,300px);
		min-height:190px;
		scroll-snap-align:start;
	}

	.gallery-selection{
		margin-top:60px;
		padding-top:48px;
	}

	.gallery-page.has-active-category .gallery-selection{
		margin-top:0;
		padding-top:0;
	}

	.gallery-back-link{
		margin-bottom:22px;
	}

	.gallery-grid{
		grid-auto-rows:170px;
		gap:8px;
	}

	.gallery-item:nth-child(8n+1),
	.gallery-item:nth-child(8n+6){
		grid-row:span 2;
	}

	.gallery-item-caption{
		right:12px;
		bottom:11px;
		left:12px;
		font-size:.9rem;
	}

	.gallery-item-type{
		top:10px;
		right:10px;
		padding:6px 8px;
		opacity:1;
		transform:none;
		font-size:0;
	}

	.gallery-item-type i{
		font-size:.72rem;
	}

	.gallery-category-pagination{
		grid-template-columns:1fr;
	}

	.gallery-category-pagination a + a{
		border-top:1px solid #ddd9d1;
		border-left:0;
		padding-left:4px;
	}

	.gallery-category-pagination .is-next:only-child{
		grid-column:1;
		border-left:0;
		padding-left:4px;
	}
}

@media (max-width:420px){
	.gallery-grid{
		grid-auto-rows:230px;
		grid-template-columns:1fr;
	}

	.gallery-item:nth-child(8n+1),
	.gallery-item:nth-child(8n+6){
		grid-row:span 1;
	}
}

@media (prefers-reduced-motion:reduce){
	.gallery-page *,
	.gallery-page *::before,
	.gallery-page *::after{
		scroll-behavior:auto !important;
		transition:none !important;
	}
}
