:root{
    --farbe-txt:#325057;
    --farbe-btn:#007fff;
    --farbe-bg:#f5f5f7;
    --farbe-rot:#b41614;
    --farbe-blau:#325057;
    --farbe-hellblau:#f6f8fb;
    --max-body:1200px;
    --max-body-texte:1000px;
    --abrundung:10px;
    --radius:3px;
    --schatten:0px 0px 0.5px rgba(0,0,0,0.5);
    --abstand:40px;
    --abstand2:100px;
}

*{
	padding:0px;
	margin:0px;
    font-family: 'futura-pt', Ariel, sans-serif;
	font-weight:400;
	font-style:normal;
    border:0px;
    font-size:inherit;
	line-height:inherit;
    color:inherit;
    outline:none;
	text-decoration:none;
	border-collapse:collapse;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
	-webkit-text-size-adjust: none;
	/*-webkit-transform: translate3d(0,0,0);*/
    color-scheme: light only;
}
:target {
    scroll-margin-top: 160px;
}
h1{
    font-size:60px;
    line-height: 70px;
    margin-bottom: 20px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 500;
}
h1 sup{
    font-size:30px;
    line-height: 70px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 300;
}
h2{
    display: block;
    font-size:30px;
    line-height: 30px;
    margin-bottom: 20px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 300;
}
h3{
    font-size:20px;
    line-height: 26px;
    margin-bottom: 10px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 400;
    text-transform: uppercase;
}
h4{
    font-size:20px;
    line-height: 26px;
    margin-bottom: 10px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 400;
}
img{
    vertical-align: top;
}
sup{
    font-size:9px;
}
b,strong{
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 700;
    font-style: inherit;
    color:inherit;
}
i{
    font-style: italic;
    font-weight: inherit;
    color:inherit;
}
u{
    text-decoration: underline;
    font-style: inherit;
    font-weight: inherit;
    color:inherit;
}
.rot{
    font-style: inherit;
    font-weight: inherit;
    color:var(--farbe-rot);
}
html{
	width:100%;
	height:100%;
	background:var(--farbe-bg);
    font-size:16px;
	line-height:20px;
	color:var(--farbe-txt);
}
body{
    width:100%;
	height:100%;
}
small{
    font-size:12px;
    line-height:16px;
}
small.block{
	display: block;
}
button{
    background: none;
}
header,main,footer{
    display:block;
    position: relative;
    width:100%;
}
ul {
    list-style: none;
    margin: 0;
    padding: 0;
    font-style: inherit;
    font-weight: inherit;
    color:inherit;
}
ul li {
    position: relative;
    padding-left: 12px;
    margin-bottom: 6px;
    font-style: inherit;
    font-weight: inherit;
    color:inherit;
}
ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 6px;
    height: 6px;
    background-color: var(--farbe-rot);
}
.link{
    text-decoration: underline;
}
.link:hover{
    text-decoration: none;
}
.fade-in{
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

header{
    position: fixed;
    height: 105px;
    width:calc(100% - 40px);
    padding:0px 20px;
    z-index: 100;
    color:var(--farbe-blau);
}
.gmbh header{
    color:#fff;
}
header .bg{
    position: absolute;
    left:0px;
    top:0px;
    width: 100%;
    height:100%;
    background: rgba(255,255,255,0.9);
    backdrop-filter: blur(20px);
    z-index:1;
    box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
    outline:1px solid rgba(0,0,0,0.1);
}
.gmbh header .bg{
    background:var(--farbe-blau);
}
header nav{
    display: block;
    position: relative;
	width:100%;
    max-width:var(--max-body);
    margin: auto;
    text-align: left;
    line-height: 50px;
    z-index:2;
    color:inherit;
}
header nav .logo{
    display:block;
    position: absolute;
    width: 450px;
    height: auto;
    vertical-align: top;
    margin-top: -6px;
    margin-left:-38px;
    z-index:1;
}
header nav menu{
    display: inline-block;
    position: relative;
    width: 100%;
    text-align: right;
    margin-top: 35px;
    color:inherit;
}
header nav menu .btn{
    margin-left:20px;
    color:inherit;
}
.gmbh header nav menu .btn,
.gmbh header nav menu .bt{
    color:inherit;
}
header nav menu .btn.inaktiv{
    opacity: 0.5;
}
header nav menu .btn.last{
    margin-left:0px;
    margin-right: 5px;
}
header nav menu .btn:hover{
    text-decoration: underline;
}
header nav menu .icons{
    display: inline-block;
    margin-left: 10px;
    line-height: 20px;
    vertical-align: baseline;
}
header nav menu .icons img{
    height: 16px;
}
header nav menu section{
    display: inline-block;
    position: relative;
    margin-left:20px;
}
header nav menu section .bt{
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 500;
    display:inline-block;
    vertical-align: top;
    color:inherit;
}
header nav menu section .submenu{
    display:none;
    position: absolute;
    width:auto;
    margin-top:0px;
    background: var(--farbe-blau);

    text-align: left;
    color:#fff;
    line-height: 24px;
    padding:50px 50px;
    border-radius: 5px;
    white-space: nowrap;
    box-shadow: 0px 5px 10px rgba(0,0,0,0.2);

    position: fixed;
    top: 80px;
    left: 50%;
    transform: translateX(-50%);
}
.gmbh header nav menu section .submenu{
    box-shadow: 0px 5px 10px rgba(0,0,0,0.7);
}
header nav menu section .submenu.show{
    display: flex;
}
header nav menu section .submenu .row{
    display: inline-block;
    vertical-align: top;
    white-space: normal;
    min-width: 320px;
}
header nav menu section .submenu .space{
    display: inline-block;
    width:50px;
}
header nav menu section .submenu .row b{
    display: block;
    margin-bottom: 10px;
}
header nav menu section .submenu .row a{
    display: block;
}
header nav menu section .submenu .row a:hover{
    opacity: 0.7;
    text-decoration: underline;
}

.absatz{
    display:block;
    background: var(--farbe-rot);
    height: 10px;
    margin:auto;
    margin-top: 60px;
    margin-bottom: 60px;
    border-radius: 30px;
    width: calc(100% - 40px);
}

main{
    display: block;
    position: relative;
    padding-top:140px;
    padding-bottom: 50px;
    margin: auto;
    max-width:calc(var(--max-body) + 40px);
}
main .banner,
main .box,
main .text{
    display: block;
    display:flex;
    position: relative;
    /*width:100%;*/
    width:calc(100% - 40px);
    padding:0px 20px;
    max-width:var(--max-body);
    margin: auto;
    text-align: left;
    margin-bottom: 40px;
}
main .bt{
    text-decoration: underline;
    cursor: pointer;
}
main .bt:hover{
    text-decoration: none;
}

main article{
    display: inline-block;
    width:calc(100% - 300px - 20px);
    max-width:calc(100% - 300px - 20px);
}
aside{
    position: sticky;
    top:90px;
    display: inline-block;
    width:260px;
    background: var(--farbe-rot);
    vertical-align: top;
    background: #fff;
    padding:20px;
    text-align: left;
    border-radius: var(--abrundung);
    box-shadow: var(--schatten);
}
aside a{
    position: relative;
    display: block;
    padding:5px;
    padding-left:25px;
    vertical-align: top;
    transition: all 0.1s;
    margin-top: 0px;
    margin-left: -5px;
    margin-bottom: 0px;
    width:calc(100% - 20px);
    border-radius: 5px;
    font-family:'futura-pt',Helvetica,Ariel,'sans-serif';
    font-weight: 700;

}
aside a.aktiv{
    background: var(--farbe-blau);
    color:#fff;
}
aside a:hover{
    background: var(--farbe-rot);
    color:#fff;
}
aside a span{
    position: absolute;
    top:5px;
    left:5px;
    vertical-align: top;
}
main .banner{
}
main .banner section{
    display: block;
    position: relative;
    width:100%;
}
main .banner section .btitel{
    position:absolute;
    top: 20px;
    left: -20px;
    background: var(--farbe-blau);
    color:#fff;
    text-transform: uppercase;
    font-size:26px;
    padding:20px 20px;
    padding-left:75px;
    font-weight: 100;
    border-radius: var(--radius);
    z-index: 10;
}
main .banner section .btext{
    position:absolute;
    bottom: 30px;
    right: 5px;
    width:calc(100% - 200px);
    background: rgba(255,255,255,0.9);
    backdrop-filter: blur(20px);
    box-shadow: 0px 0px 0.5px rgba(0,0,0,0.2);
    padding:20px 20px;
    padding-left: 40px;
    border-radius: var(--radius);
    border-radius: 10px;
    z-index: 10;
}
main .banner section .btext .linie{
    position: absolute;
    left:0px;
    top:0px;
    height: 100%;
    width:20px;
    background: var(--farbe-rot);
    border-radius: var(--radius) 0 0 var(--radius);
}
main .banner section .bcopy{
    position: absolute;
    right:5px;
    bottom:5px;
    background: #fff;
    color:var(--farbe-txt);
    color:#000;
    font-size: 10px;
    line-height: 10px;
    padding:5px 10px;
    border-radius:20px;
    background: rgba(255,255,255,0.5);
    backdrop-filter: blur(20px);
    box-shadow: 0px 0px 0.5px rgba(0,0,0,0.2);
}
main .banner section .bg{
    display: block;
    position: relative;
    width:100%;
    height:500px;
    background: #fff;
    overflow: hidden;
    border-radius: var(--abrundung);
    box-shadow: var(--schatten);
}
main .banner section .bg img{
    display:flex;
    width:100%;
    height:100%;
    object-fit: cover;
    object-position: center;
}

main .box a{
    position: relative;
    display:inline-block;
    padding:30px;
    padding-left:50px;
    width:calc(50% - 20px - 50px);
    height:calc(50% - 20px - 30px);
    transition: all 0.2s;
    border-radius: var(--abrundung);

}
main .box a:hover{
    transform: scale(1.05);
    filter:drop-shadow(0px 2px 10px rgba(0,0,0,0.5));
    z-index: 10;
    outline:2px solid var(--farbe-rot);
}
main .box a .bg{
    position: absolute;
    top:0px;
    left:0px;
    width: 100%;
    height: 100%;
    border-radius: var(--abrundung);
    box-shadow: var(--schatten);
    background: #fff;
    color:var(--farbe-blau);
    z-index:1;
}
main .box a.blau{
    color:#fff;
}
main .box a.blau .bg{
    background:var(--farbe-blau);
}
main .box a h2{
    position: relative;
    margin-left:-20px;
    font-weight: 300;
    color:inherit;
    z-index:2;
}
main .box a span{
    position: relative;
    color:inherit;
    z-index:2;
}
main .box a .weiter{
    position: absolute;
    bottom:-10px;
    right:20px;
    background: var(--farbe-rot);
    padding:5px 10px;
    font-size: 12px;
    text-transform: uppercase;
    color:#fff;
    z-index:3;
    border-radius: var(--radius);
}
.box.masonry{
  /* falls du vorher display:flex / grid gesetzt hast: */
  display: block !important;

  column-width: 320px;      /* Zielbreite pro Spalte */
  column-gap: 30px;
}
.box.masonry > .card{
  display: inline-block !important;  /* MUSS für columns */
  width: 100% !important;            /* füllt die Spalte */
  margin: 0 0 30px;
  break-inside: avoid;
  box-sizing: border-box;
}
@media (max-width: 700px){
  .box.masonry{ column-width: auto; column-count: 1; }
}

main .text section{
    position: relative;
    display:inline-block;
    padding:30px;
    width:calc(100% - 60px);
    transition: all 0.2s;
    border-radius: var(--abrundung);
    box-shadow: var(--schatten);
    background: #fff;
}
main .text section .abstand2{
    display: block;
    height: 20px;
}
main .text section .bild{
    display: block;
    position: relative;
    text-align: center;
}
main .text section .bild.rahmen{
    background: #f8f8f8;
    border-radius: 10px;
    padding:10px 0px;
    box-shadow: inset 0px 0px 1px rgba(0,0,0,0.5);
}
main .text section .bild .bild_box{
    display: inline-block;
    position: relative;
    margin: auto;
}
main .text section .bild .bild_box img{
    display: inline-block;
    border-radius: 10px;
    padding:0px;
    max-width:100%;
}
main .text section .bild.rahmen .bild_box img{
    max-width:calc(100% - 20px);
}
main .text section .bild .bild_box .copy{
    position: absolute;
    right:15px;
    bottom:5px;
    background: #fff;
    color:var(--farbe-txt);
    color:#000;
    font-size: 9px;
    line-height: 10px;
    padding:4px 8px;
    border-radius:20px;
    background: rgba(255,255,255,0.5);
    backdrop-filter: blur(20px);
    box-shadow: 0px 0px 0.5px rgba(0,0,0,0.2);
}
main .text section .video{
    display: block;
    position: relative;
    text-align: center;
    border-radius: 10px;
    padding:0px;
    max-width:100%;
}

main .text section h2{
    margin-bottom: 30px;
}
main .text section .spalten{
    column-count: 1;        /* Anzahl der Spalten */
    column-gap: 2rem;       /* Abstand zwischen den Spalten */
    column-gap: 30px;
}
main .text section .spalten p{
    margin: 0 0 1.5em;
}
main .text section .spalten {
  column-gap: 2rem;
  column-gap: 30px;
}
main .text section .spalten.noauto{

    column-count: 1;
}
main .text section .zeile{
    display: block;
    white-space: nowrap;
}
main .text section .zeile .spalte{
    display: inline-block;
    white-space: normal;
    width: calc(50% - 15px);
    vertical-align: top;
}
main .text section .zeile .leer{
    display: inline-block;
    width: 30px;
}
main .text section .file{
    display: inline-block;
    position: relative;
    padding: 2px 20px;
    padding-right: 0px;
    transition: all 0.1s;
}
main .text section .file:hover{
    background: var(--farbe-rot);
    border-radius: 3px;
    color:#fff;
    padding: 2px 10px;
}
main .text section .file .quad{
    position: absolute;
    left:0px;
    top:7px;
    display: inline-block;
    background: var(--farbe-rot);
    width: 10px;
    height: 10px;
    transition: all 0.1s;
}
main .text section .file:hover .quad{
    opacity: 0;
}
main .text section .file2{
    display: inline-block;
    text-decoration: underline;
}
main .text section .file2:hover{
    text-decoration: none;
}

@media (min-width: 800px) {
  main .text section .spalten {
    column-count: 2;
  }
}
@media (max-width: 799px) {
    main .text section .zeile .spalte{
        display: block;
        width: 100%;
    }
    main .text section .zeile .leer{
        display: block;
        width: 20px;
        height: 20px;
    }
}

.verzeichnis{
    display:block;
}
.verzeichnis .btn:hover{
    text-decoration: underline;
}
.verzeichnis .suche{
    display: block;
	position: relative;
	margin-bottom: 10px;
}
.verzeichnis .suche input{
    display: block;
    border-radius: 3px;
    padding:5px 0px;
    border:1px solid var(--farbe-blau);
	width:calc(100% - 2px - 30px);
	padding-left: 30px;
}
.verzeichnis .suche .icon{
	position: absolute;
	top:0px;
	left:0px;
	width:20px;
	width:20px;
	padding:6px;
	cursor: pointer;
}
.verzeichnis .suche .icon:hover{
	opacity: 0.5;
}
.verzeichnis .eintrag{
    position: relative;
	display: block;
	margin-left:0px;
	margin-bottom: 15px;
	padding-left:16px;
	padding-left:20px;
    border-radius: 2px;
    cursor:pointer;
}
.verzeichnis .eintrag.ani:hover{
    background: var(--farbe-bg);
    box-shadow: inset 0px 0px 0.5px rgba(0,0,0,0.4);
}
.verzeichnis .eintrag .linie{
	position: absolute;
	left:0px;
	top:0px;
	height: 100%;
	width:4px;
	background: var(--farbe-rot);
    border-radius: 2px;
	transition: all 0.1s;
}
.verzeichnis .eintrag:hover .linie{
    width: 10px;
}
.verzeichnis .eintrag .mehr{
	display: block;
	position: relative;
	overflow: hidden;
}
.verzeichnis .eintrag .mehr div{
	display: block;
	position: relative;
    height: 0px;
    transition: all 0.1s;
}
.verzeichnis .eintrag .hide{
	display: block;
	position: relative;
	overflow: hidden;
}
.verzeichnis .eintrag .hide div{
	display: block;
	position: relative;
    height: auto;
    transition: all 0.1s;
}

.cv{
	display: block;
	position: relative;
	overflow: hidden;
	height: 0px;
	transition: 0.5s all;
}
.cv .mask{
	position: relative;
	display: block;
}
.cv .cv_pos{
	display: block;
	position:relative;
	padding-left:10px;
	margin-top: 20px;
}
.cv .cv_pos .cv_titel{
	display:block;
	margin-bottom: 5px;
}
.cv .cv_pos .cv_titel small{
	display: inline-block;
	padding-left: 0px;
	background: var(--farbe-rot);
	color:#fff;
	margin-left:-10px;
	padding:5px 10px;
    border-radius: 2px;
    font-size:13px;
    font-weight: bold;
}
.cv .cv_pos .cv_linie{
	position: absolute;
	top:3px;
	left:0px;
	width: 2px;
	height:calc(100% - 6px);
	background: var(--farbe-rot);
    border-radius: 2px;
}

.termine{
	display:block;
	position: relative;
}
.termine .liste{
	position: relative;
}
.termine .liste .linie{
	position: absolute;
	background: var(--farbe-blau);
	width:2px;
    height:100%;
	left:0px;
	top:0px;
}
.termin{
	display:block;
	position: relative;
	padding-left:80px;
	padding-top:5px;
	margin-left:120px;
	min-height:80px;
	margin-bottom: 40px;
}
.termin.home{
    margin-left:0px;
}
.termin .linie_monat{
	position: absolute;
	left:-120px;
	top:22px;
	background:#fff;
	padding: 5px 0px;
	font-size:16px;
	font-weight: 500;
}
.termin .datum{
	position:absolute;
	top:0px;
	left:0px;
	width:60px;
	height: 70px;
	padding-top:8px;
	font-size:18px;
	text-align: center;
	border:1px solid #133664;
	background: #fff;
    border-radius: 3px;
}
.termin .datum .jahr{
	position: absolute;
	bottom:0px;
	width: 100%;
	text-align: center;
	background: #325057;
	color:#fff;
	padding:2px 0px;
}
.termin .bt{
    display: block;
}

.list{
	display:block;
}
.list a{
	text-decoration: underline;
}
.list a:hover{
	text-decoration: none;
}

.projekte{
    position:relative;
    display:block;
	margin-bottom:40px;
	white-space: nowrap;
}
.projekte .plogo,
.projekte .ptext{
    position: relative;
	display: inline-block;
    white-space: normal;
    vertical-align:top;
}
.projekte .ptext{
    width:100%;
    max-width:calc(100% - 300px);
}
.projekte .ptext strong{
    display:inline-block;
    margin-bottom:5px;
}
.projekte.ohne .ptext{
	width:auto;
    max-width:none;
    padding-left:20px;
}
.projekte.ohne{
    margin-bottom:20px;
}
.projekte .plogo{
    max-width: calc(300px - 60px);
    width:50%;
    padding-right:30px;
    padding-left:30px;
}
.projekte .plogo img{
    width:100%;
	height:auto;
}
.projekte .plinie{
    position: absolute;
    left:0px;
    top:0px;
    width: 3px;
    height: 100%;
    border-radius: 3px;
    background: var(--farbe-rot);
}

footer{
    width:calc(100% - 40px);
    padding:0px 20px;
    background:var(--farbe-blau);
    color:#eee;
    overflow: hidden;
    border-top:10px solid var(--farbe-rot);

}
footer .link{
    text-decoration: none;
}
footer .link:hover{
    text-decoration: underline;
}
footer section{
    display: block;
    position: relative;
	width:100%;
    max-width:var(--max-body);
    margin: auto;
    text-align: left;
    color:inherit;
    padding-top:100px;
    padding-bottom:50px;
    z-index:2;
}
footer section .logo{
    display:block;
    height: 15px;
    margin-bottom: 10px;
    margin-top:100px;
}
footer .bg{
    position: absolute;
    top:0px;
    left:0px;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index:1;
    object-position: center;
    filter:blur(10px);
    opacity: 0.5;
}
footer table td,footer table th{
    padding-right:100px;
    vertical-align: top;
}
footer table th{
    padding-bottom:10px;
}
footer table td.linie_rechts{
    border-left:2px solid var(--farbe-rot);
    padding-left:10px;
    max-width: 240px;
}
footer table td .icons{
    display: inline-block;
    margin-top:20px;
    margin-right: 10px;
    line-height: 20px;
    vertical-align: baseline;
}
footer table td .icons img{
    height: 16px;
    filter:invert(1) contrast(100);
}
