.modal{
    display:none;
    position:fixed;
    z-index:1;
    left:0;
    top:0;
    width:100%;
    height:100%;
    background-color:rgba(0, 0, 0, 0.5)
}
.modal-content{
    background-color:#fff;
    padding:20px;
    border:1px solid #888;
    max-height:70vh
}
.modal-caption{
    margin:0 12vw
}
.modal-caption p{
    background-color:white;
    border-radius:12px;
    padding:8px;
    margin-top:clamp(8px, 1vh, 2vh)
}
.close{
    position:absolute !important;
    top:10px;
    right:25px;
    color:white;
    font-size:35px;
    font-weight:bold;
    cursor:pointer
}
.close:focus,.close:hover{
    color:#000;
    text-decoration:none;
    cursor:pointer
}
.calltoaction{
    text-align:center;
    align-items:center
}
.calltoaction p{
    margin:0
}
.calltoaction button{
    font-weight:bold;
    border:none;
    background-color:#003D8F;
    border-radius:25px;
    width:16em;
    height:3.2em;
    box-shadow:0 0 0 0 #2567E9;
    transition:box-shadow 0.6s linear;
    margin:0.5em;
    font-size:20px;
    cursor:pointer
}
.calltoaction button:hover{
    background-color:#1A48A3;
    box-shadow:0 0 0 6px #1A48A3;
    color:white
}
.calltoaction button a{
    color:white;
    text-decoration:none
}
.icons{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
    justify-content:space-around;
    height:auto;
    justify-items:center
}
.icons div{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    margin:0 1vw
}
.icons h2{
    margin:0
}
.icons div img{
    margin-bottom:2vh
}
.welcome{
    margin-top:5vh
}
.software > div{
    display:grid;
    justify-items:center;
    align-items:center;
    gap:8vh;
    grid-template-columns:repeat(4, 1fr);
    align-items:end;
    text-align:center
}
.software div figure img{
    width:16vw
}
.software div figure:nth-last-child(1) img{
    width:20vw
}
.partners > div{
    display:grid;
    justify-items:center;
    align-items:center;
    gap:6vh;
    grid-template-columns:repeat(2, 1fr);
    align-items:end;
    text-align:center;
    margin-top:2vh
}
.partners div figure a img{
    height:auto;
    width:10vw
}
.partners div figure:nth-child(2) a img{
    width:20vw
}
.grid-projects{
    display:grid;
    justify-items:center;
    align-items:center;
    gap:10vh;
    grid-template-columns:repeat(2, 1fr)
}
.grid-projects figure:nth-last-child(1) img{
    width:18vw
}
.company-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
    gap:2rem;
    padding:2rem
}
.company-card{
    border:1px solid #000;
    padding:1.5rem;
    line-height:1.2;
    text-align:center;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:0.5rem;
    background-color:#fff;
    box-shadow:0 2px 6px rgba(0, 0, 0, 0.08);
    transition:transform 0.2s ease, box-shadow 0.2s ease
}
.company-card:hover{
    transform:translate(-2px, -4px);
    box-shadow:0 6px 18px rgba(0, 0, 0, 0.15)
}
.company-card b{
    color:#003D8F;
    font-size:18px
}
.intro{
    display:flex;
    flex-direction:row;
    gap:0 6vw;
    align-items:flex-start
}
.intro div figure video{
    width:40vw;
    cursor:pointer
}
.intro div figure img{
    height:60vh;
    border-radius:20px
}
.team{
    display:flex
}
.team > div{
    display:flex;
    gap:8vw
}
.team figure{
    display:flex;
    justify-content:center
}
.team div > div{
    flex:1;
    display:flex;
    flex-direction:column
}
.team img{
    height:40vh;
    max-height:100%;
    width:auto
}
.security{
    display:flex;
    flex-direction:row;
    gap:0 6vw;
    align-items:flex-start
}
.security aside{
    position:sticky;
    flex:1;
    top:16vh
}
.security a{
    text-decoration:none
}
.security aside ul{
    margin-bottom:2vh
}
.security aside li{
    list-style:none;
    color:hsl(0, 0%, 10%)
}
.security table{
    border-collapse:collapse;
    width:100%
}
.security td,th{
    border:1px solid #ddd;
    padding:8px
}
.tr-top-clean td{
    border-top:none;
    background-color:white
}
.tr-clean td{
    border-top:none;
    border-bottom:none;
    background-color:white
}
.tr-bottom-clean td{
    border-bottom:none;
    background-color:white
}
.tr-bottom-clean:hover td,.tr-clean:hover td,.tr-top-clean:hover td{
    background-color:#ddd
}
.security tr:nth-child(even){
    background-color:#f2f2f2
}
.security tr:hover{
    background-color:#ddd
}
.security th{
    padding-top:12px;
    padding-bottom:12px;
    text-align:left;
    background-color:hsl(214, 100%, 35%);
    color:white
}
.mathContent{
    font-size:24px
}
.ImgContainer > img{
    width:20vw
}
.ImgContainer{
    text-align:center
}
.projects > div{
    display:flex;
    flex-direction:row;
    gap:4vw
}
.projects p{
    margin:1vh 0 0
}
#main-contact{
    display:flex;
    justify-content:space-between
}
#main-contact{
    text-align:center
}
#main-contact div > section:nth-child(4){
    display:flex;
    flex-direction:row;
    justify-content:center;
    align-items:center;
    gap:4vw;
    margin-top:4vh
}
.cookie-container{
    z-index:999;
    height:auto;
    padding:5px 5px 10px;
    background-color:#003D8F;
    position:fixed;
    width:100vw;
    bottom:0;
    text-align:center;
    line-height:1.7;
    border-top:2px solid black
}
.cookie-container p{
    margin:2vh 0 0;
    color:white !important
}
.cookie-container.active{
    display:block
}
.cookie-button{
    margin:10px 0 0 10px;
    cursor:pointer;
    border:none;
    border-radius:8px;
    padding:12px 48px;
    background-color:rgba(35, 37, 41, 0.8);
    color:white
}
.cookie-consent-manager{
    z-index:1000;
    display:flex;
    justify-content:center;
    align-items:center;
    position:fixed;
    top:0;
    left:0;
    height:100vh;
    width:100vw;
    background:rgba(0, 0, 0, 0.75) !important
}
.cookie-consent-manager > div{
    width:30vw;
    height:fit-content;
    display:flex;
    flex-direction:column;
    align-items:center;
    background-color:#003D8F;
    padding:1vh 1vw;
    border-radius:20px;
    color:white
}
.cookie-consent-manager p{
    margin:1vh 0;
    text-align:justify
}
.inhaltsverzeichnis ul li a{
    text-decoration:underline
}
footer{
    display:flex;
    flex-direction:column;
    margin-top:10vh;
    background-color:#D8E1ED;
    text-align:center
}
footer section{
    display:flex;
    line-height:27px;
    width:100%
}
footer > div:nth-child(1){
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:2rem;
    width:100%;
    justify-items:center;
    padding:6vh 12vw
}
footer div:nth-child(1) section:nth-child(2) div:nth-child(2) img{
    height:45px;
    width:55px
}
footer div:nth-child(1) section:nth-child(2) div:nth-child(2){
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1vh;
    height:100%;
    justify-content:center
}
footer div:nth-child(1) section:nth-child(2) div:nth-child(2) a{
    display:flex;
    align-items:center
}
footer div:nth-child(1) section{
    padding:2vh 1vw;
    border-radius:20px;
    background-color:white
}
footer section:nth-child(3) a:nth-child(3){
    margin-top:2vh
}
footer section h2{
    display:flex;
    justify-content:center;
    margin-bottom:1vh
}
footer div section:nth-child(3){
    justify-content:space-around
}
footer div section:nth-child(3) img{
    width:100%;
    height:auto
}
footer div:nth-child(2){
    background-color:white
}
footer div:nth-child(2) section{
    display:flex;
    align-items:center;
    margin-bottom:0
}
footer div:nth-child(1) section:nth-child(4) p{
    margin-bottom:0
}
footer div:nth-child(1) section:nth-child(3) p{
    margin-bottom:0
}
footer div:nth-child(2) section p:nth-child(1){
    margin:2vh 0 0
}
footer .section,ul{
    display:flex;
    flex-direction:column
}
footer img{
    height:45px;
    width:100%;
    height:100%
}
