:root{
	--blau:#2d5084;
	--gelb:rgb(250, 183, 2);
	--txt:rgb(51, 51, 51);
	--dark:#000;
	--grau:#f5f5f5;
}
@font-face {
    font-family: 'Open Sans';
    src: url('/fonts/Open_sans/OpenSans-VariableFont_wdth,wght.ttf') format('truetype');
    font-weight: 100 900; /* Adjust based on the font's available range */
    font-style: normal;
}
html{
	scroll-behavior:smooth;
}
*{
	padding:0;
	margin:0;
	box-sizing:border-box;
}
body {
	font-family: Arial, sans-serif;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	color:var(--txt);
	font-family: 'Open Sans', sans-serif;
	line-height:1.5;
}
h1{
	font-size:3em;
	text-transform:uppercase;
	margin-bottom:.5rem;
	color:var(--blau);
}
h2{
	font-size:2em;
	color:var(--dark);
	
	
}
h4, .like-h4{
	color:var(--gelb);
	text-transform:uppercase;
	font-size:1.125em;
	margin-bottom:.5em;
}
p{
	line-height:1.8;
	margin:1em 0;
}
a:not(.nodec){
	color:inherit;
	text-decoration:none;
	border-bottom:1px solid var(--gelb);

}

.subhead{
	color:var(--gelb);
	text-transform:uppercase;
	font-size:.9em;
	font-weight:500;
}
.head-cont{
	flex:1;
}
.row-cont{
	width:50%;
	margin-top:1.5rem;
}
.container{
	width:100%;
	height:100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 6rem 3rem;
	display:flex;
	flex-direction:column;
	align-items: flex-start;
	gap:1em;
	position:relative;
	
}
.container.row, .row{
	display:flex;
		flex-direction:row;
		width:100%;
	}
	.flex-1{
		flex:1;
	}
header {
	background: #fff;
	
	text-align: center;
	
	.container{
		padding-top:1.5rem;
		padding-bottom:1.25rem;
	}
}
section {
	width:100%;
}
#hero{
	background-color:grey;
	background:url('images/bauwerk_hero.jpg');
	background-repeat:no-repeat;
	background-size:cover;
	background-position:center center;
	padding-bottom:4rem;
	
	
	.container{
		min-height:60vh;
		justify-content: center;
		margin-bottom:2rem;
		
	}
	.row-cont{
		width:60%;
	}
	h2{
		font-weight:400;
		font-size:1.25em;
		color:var(--dark);
	}
}
#leistungen{
	.container{
		padding-top:0;
		padding-bottom:2rem;
		margin-top:-2rem;
	}
}
.leistungen-grid{
	display:grid;
	grid-template-columns:repeat(4,  minmax(1%, 1fr));
	gap:0;
	
	.leistung{
		display:flex;
		flex-direction:column;
		align-items: center;
       justify-content: center;
		aspect-ratio:1/1;
		padding:1.75rem 1rem 1rem;
		gap:1rem;
		hyphens:auto;
		text-align:center;
		
		h3{
			min-height:2lh;
			font-weight:500;
		}
		
	}
	
	.leistung:nth-child(3){
		background-color:var(--gelb);
		color:var(--dark);
		fill:var(--dark);
		
	}
	.leistung:nth-child(1){
		background-color:var(--blau);
		color:#fff;
		fill:#fff;	
	}
	.leistung:nth-child(4){
		background-color:var(--dark);
		color:#fff;
		fill:#fff;	
	}
	.leistung:nth-child(2){
		background-color:var(--grau);
		color:var(--dark);
		fill:var(--dark);	
	}
	svg{
			width:5rem;
			height:auto;
			aspect-ratio:1/1;
			fill:inherit;
			
		}
}
#unternehmen{
	
}
#referenzen{
	background-color:var(--grau);
	.row{
		margin-bottom:3rem;
	}
}

.portfolio-content{
	display:grid;
	grid-template-columns: repeat(4, minmax(1%, 1fr));
	gap:.5em;
}
.gallery-item{
	aspect-ratio:1/1;
	object-fit:cover;
	width:100%;
	
	opacity:.95;
	transition:.2s;
	transform-origin:center center;
}
.gallery-item:hover{
	transform:scale(.99);
	opacity:1;
	cursor:pointer;
}
.gallery-lightbox{
	display:none;
	position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	z-index:999999;
}
.openItem{
	max-height:100%;
	width:100%;
	object-fit:contain;
}
.gallery-nav{
	width:100%;
	display:flex;
}
.gallery-button{
	background-color:transparent;
	border:none;
	padding:none;
	width:2rem;
}
.gallery-button:hover{
	transform:scale(1.1);
	cursor:pointer;
}
.gallery-button-close{
	margin-left:auto;
	align-self:flex-end;
}
.gallery-button-previous{
	position:absolute;
	left:-24px;
	top:50%;
}
.gallery-button-next{
	position:absolute;
	right:-24px;
	top:50%;
	
	svg{
		transform:rotate(180deg);
	}
}
.gallery-navigation {
    list-style: none;
    padding: 0;
    margin: 0;
    position: absolute;
    display: flex;
    bottom: -50px;
    left: 50%;
    transform: translate(-50%);
}
.gallery-navigation-button {
    display: block;
    width: 10px;
    height: 10px;
    border: 0;
    background-color: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    margin: 0 3px;
}
.gallery-navigation-button.active {
    background-color: rgba(255, 255, 255, 0.95);
}
footer {
	background: var(--dark);
	color: #fff;

	.container{
		padding-top:3em;
		padding-bottom:2em;
	}
	.center{
		gap:3rem;
		padding:2em 0;
		border-bottom:1px solid rgba(255, 255, 255, .25);
	}

	.bottom{
		font-size:.8em;
		padding-top:1em;
	}
	
	.icon{
		fill:var(--gelb);
	}
}
.kontakt-grid{
	display:grid;
	grid-template-columns:repeat(2, max-content);
	gap:.5em 2em;
}
.icon-box{
	display:flex;
	align-items:center;
	gap:.75em;
	margin-bottom:.5rem;
}

a.btn:not(.btn.scnd){
	color:var(--dark);
	background-color:var(--gelb);
	padding:1em 2em .75em;
	border-radius:.25em;
	text-decoration:none;
	display:inline-block;
	font-weight:600;
	font-size:1em;
	transition:.2s ease;
	margin-top:2rem;
}
a.btn:not(.btn.scnd):hover{
	transform:scale(1.025);
	
}
a.btn.scnd{
	margin-top:2rem;
	width: max-content;
}
#impressum{
	padding:0;
	background-color:var(--grau);
	.container{
		min-height:unset;
		margin-bottom:0;
		padding-top:3rem;
		padding-bottom:3rem;
		
		h1{
			font-size:2em;
			margin:0;
		}
	}
	
}
#datenschutz{
	a{
		word-break: break-all;
	}
}
@media (max-width: 991px){
	.logo{
		height:2rem;
		width:auto;
	}
	.container{
		padding:3rem 1rem;
	}
	.container .row, .container.row{
		flex-direction:column;
	}
	.row-cont{
		width:100%;
	}
}
@media (max-width: 767px){
	#hero{
		background-position:center top;
		background-size:auto 110%;
		font-size:.8rem;
		
		.row-cont{
			width:80%;
		}
		
	}
	.leistung svg{
		width:3rem;
	}
	.gallery-button-previous, .gallery-button-next{
		display:none;
	
}
	header .container{
		padding-top:1rem;
		padding-bottom:.5rem;
	}
	.portfolio-content, .leistungen-grid{
	grid-template-columns: repeat(2, minmax(1%, 1fr));
	}
	.kontakt-grid{
		display:flex;
		flex-direction:column;
		gap:1em;
	}
}
