/*
Theme Name: MeinHausService
Author: Alois Roggli
Description: Ein modernes, leichtes und flexibles WordPress Theme für MeinHausService GMBH.
Version: 1.01
*/

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    text-decoration: none;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  outline: none;
  border-color: var(--black);
}

.current-menu-item > a {
  color: var(--white) !important;
  font-weight: 500 !important;
}

a{
    text-decoration: none;
}

.green {
    color: var(--green);
}

h1, h2, h3, h4, h5, h6, p, a{
    color: var(--black);
}

main{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10vh;
    padding: 0px 20px;
    margin-bottom: 15vh;
}

 main > section{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10vh;
 }



.wp-block-button{
    font-weight: 100 !important; 
    font-family: Roboto;

    a{
        background-color: var(--green);
        
        font-size: 20px;
        padding: 10px 40px;
        border-radius: 10px;
        box-shadow: -4px 4px 10px var(--grey);
        border: 2px solid transparent;

        &:hover{
            border: 2px solid var(--green);
            background-color: var(--white);
            color: var(--green);
            transition: 0.2s;
        }
    }
}

header{
    display: flex;
    position: sticky;
    z-index: 98;
    top: 0;
    justify-content: space-between;
    align-items: center;
    background-color: var(--black);
    padding: 20px 80px 25px 80px;

    .burger{
        display: none;
                transform-origin: center center;
    }

    img {
        width: 190px;
        object-fit: cover;
    }

    .menu{
        display: flex;
        margin-top: 20px;
        justify-content: space-between;  
    }

    .main{

        nav{
            ul{
                gap: 2vw;

                li{
                    list-style-type: none;
                    a{
                        font-size: 28px;
                        font-weight: 200;
                        color: var(--green);

                        &:hover{
                            font-weight: 500;
                            transition: 0.2s;
                            color: var(--white);
                        }
                    }
                }
            }
            
        }
    }
    
    
    .contact{
        nav{
            ul{
                gap: 1vw;
                display: flex;
                align-items: center;

                i{
                    font-size: 40px;
                }

                li{
                    list-style-type: none;
                    a{
                        font-size: 28px;
                        font-weight: 200;
                        color: var(--white);

                        &:hover{
                            font-weight: 500;
                            transition: 0.2s;
                        }
                    }
                }
            }
            
        }
    }
}


footer{
    display: flex;
    position: sticky;
    z-index: 1;
    top: 0;
    justify-content: space-between;
    align-items: center;
    background-color: var(--green);
    padding: 100px 80px;

    img {
        width: 120px;
        object-fit: cover;
    }

    .menu li{
        list-style-type: none;
    }

    .Contact-Links{
        align-items: center;
        display: flex;
        flex-direction: column;

        h5 {
            font-size: 20px;
            font-weight: 500;
            color: var(--white);
        }

        h4{
            font-size: 20px;
            font-weight: 100;
            color: var(--white);
            a{
                color: var(--white);
            }
        }
    }

    .impressum{
        ul{
            display: flex;
            flex-direction: column;
            align-items: flex-end;

            a{
                color: var(--white);
            }
        }
    }
}

main .home > div{
    display: flex;
    justify-content: space-between;
    height: 80vh;
    align-items: center;
    width: 880px;

    img{
        height: 400px;
        width: 500px;
        object-fit: cover;
        border-radius: 15px;
        border: 15px solid var(--white);
        box-shadow: -4px 4px 10px var(--grey);
    }
}

.angebote{
    display: flex;
    flex-direction: column;
    align-items: center;

    h1{
        margin-bottom: 15px;
    }

    > div{
    display: flex;
    align-items: center;
    width: 800px;
    gap: 6vh;
    flex-direction: column;
    justify-content: space-between;

    .article{
        display: flex;
        gap: 2vw;

        img{
            height: 360px;
            min-width: 100%;
            object-fit: cover;
            border-radius: 15px;
            border: 15px solid var(--white);
            box-shadow: -4px 4px 10px var(--grey);
        }

        .inhalt > div{
            display: flex;
            flex-direction: column;
            gap: 10px;
            max-width: 750px;

            .wp-block-list {
                    font-weight: 100;
                    font-family: Roboto;
                    font-size: 16px;
                    margin-left: 30px;
            }
        }
    }
}

.wp-block-button{
    font-weight: 100 !important; 
    font-family: Roboto;

    a{
        background-color: var(--green);
        
        font-size: 20px;
        padding: 10px 40px;
        border-radius: 10px;
        box-shadow: -4px 4px 10px var(--grey);
        border: 2px solid transparent;

        &:hover{
            border: 2px solid var(--green);
            background-color: var(--white);
            color: var(--green);
            transition: 0.2s;
        }
    }
}
}

.impresum > div{
    margin-top: 100px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 880px;
}

.about > div{
    display: flex;
    flex-direction: column;
    height: 82vh;
    gap: 2vh;
    justify-content: center;
    align-items: center;
    width: 880px;

    p {
        text-align: center;
        font-size: 16px;
        font-weight: 100;
    }

    img{
        color: var(--green);
        width: 50px;
    }
}

form{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 800px;

    span{
        width: 100%;
    }

    textarea{
        width: 100%;
    }
    
    input{
        width: 100%;
        padding: 15px 15px;
        display: flex;
        justify-content: flex-start;
        border: solid var(--green) 3px;
        border-radius: 15px;
        font-size: 20px;
        font-weight: 100;
        font-family: Roboto;
        box-shadow: -4px 4px 10px var(--grey);

    }

    .message{
        max-width: 100%;
        padding: 15px 15px;
        display: flex;
        justify-content: flex-start;
        border: solid var(--green) 3px;
        border-radius: 15px;
        font-size: 20px;
        font-weight: 100;
        font-family: Roboto;
        box-shadow: -4px 4px 10px var(--grey); 
    }

    .submit{
        padding: 15px 15px;
        display: flex;
        border: solid var(--black) 3px;
        justify-content: flex-start;
        background-color: var(--black);
        border-radius: 15px;
        font-size: 20px;
        color: var(--white);
        font-weight: 100;
        font-family: Roboto;
        box-shadow: -4px 4px 10px var(--grey);
        width: 100%;


        &:hover{
            border: solid var(--black) 3px;
            background-color: var(--white);
            color: var(--black);
            transition: 0.2s;
        }
    }
}

/* Einblend-Animation für Seitenelemente */
.wp-block-group,
.wp-block-columns,
.wp-block-image,
.wp-block-heading,
.wp-block-paragraph,
.wp-block-cover,
article,
.entry,
.post,
section {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Scroll-to-Top Button */
#scroll-top-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 60px;
  height: 60px;
  background: var(--black);
  color: var(--white);
  border: none;
  border-radius: 12px;
  font-size: 20px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
  z-index: 9999;
}

#scroll-top-btn:hover {
  background: transparent;
  border: solid var(--black) 2px;
  color: var(--black);
}

#wpadminbar,
#wpadminbar *,
.admin-bar #wpadminbar {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}


.categorie-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0;
  margin: 0;
}

.categorie-list li {
    gap: 5px;
    display: flex;
    flex-direction: column;

    a{
        font-weight: 100 !important; 
        font-family: Roboto;
        color: var(--white);
        background-color: var(--green);
        font-size: 20px;
        padding: 10px 40px;
        color: var(--white);
        border-radius: 10px;
        box-shadow: -4px 4px 10px var(--grey);
        border: 2px solid transparent;
    
        a{
            color: var(--white);
        }
    
        
        &:hover{
            border: 2px solid var(--green);
            background-color: var(--white);
            color: var(--green);
            transition: 0.2s;
    
            a{
                color: var(--green);
    
            }
        }
        
    }
}

.posts{
    display: grid;
    width: 1000px;
    gap: 4vh;
    grid-template-columns: 1fr 1fr;
    flex-direction: column;
    justify-content: space-between;
}

.post {
    display: flex;
    width: 100%;
    gap: 5px;
    align-items: flex-start;
    flex-direction: column;
    color: var(--black);
    border-radius: 15px;
    border: 15px solid var(--white);
    box-shadow: -4px 4px 10px var(--grey);


    img {
        width: 100%;
        height: 30vh;
        object-fit: cover;
        object-position: top;
        border-radius: 10px;
        filter: grayscale(100%);
        transition: ease-out 0.2s;

        &:hover {
            filter: grayscale(0%);
        }
    }
}

.cta, .cta > div {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 10px;
    text-align: center;
    
    a{
        display: inline-block;
}
}

.projekt > div{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 800px;
    gap: 10vh;

    .projekt-detail{
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 3vh;
    }

    .article {
        gap: 2vw;

        img{
            height: 360px;
            min-width: 100%;
            object-fit: cover;
            border-radius: 15px;
            border: 15px solid var(--white);
            box-shadow: -4px 4px 10px var(--grey);
        }
    }
}






/* ==========================================================================
   RESPONSIVE STYLES
   Breakpoints: 800px (Tablet / kleine Screens), 320px (sehr kleine Mobile)
   Einfach unten an deine bestehende style.scss anhängen.
   ========================================================================== */

@media (max-width: 1200px) {

    header{
        padding: 20px 20px 25px 20px;

    .staticgroup{
        display: flex;
        justify-content: space-between;
        width: 100%;
    }

    .burger{
        transition: transform 0.2s ease-in;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 60px;
        height: 60px;
        color: var(--white);
        font-size: 60px;
        margin-top: 30px;

        .close{
            display: none;
        }

        .open{
            display: block;
        }
    }

    img {
        width: 190px;
    }

    .menu{
        display: none;
    }

    .main{
        display: none;
    }
    
    
    .contact{
        display: none;
    }
}

header.expanded {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    background-color: var(--black);
    height: 100vh;
    width: 100%;
    inset: 0;
    z-index: 5;
    padding: 20px 20px 25px 20px;


    .burger {
        transform: rotate(180deg);

        .close {
            display: block;
            transition: transform 0.3s ease;
            transform-origin: center center;
        }
        .open {
            display: none;

        }
    }

    .staticgroup{
        margin-bottom: 12vh;
    }

    .menu {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 10px;
    }

    .main {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        nav ul {
            flex-direction: column;
            align-items: center;
            gap: 10px;

            li a{
                font-size: 32px;
            }
        }
    }

    .contact {
        display: flex;
        flex-direction: column;
        align-items: center;

            li a{
                font-size: 32px;
            }
    }
}

h1 {
    font-size: 60px;
}

h2 {
    font-size: 28px;
}

h3 {
    font-size: 22px;
}

main{
    padding: 0px 100px;
}

section{
    width: 100%;
}

main .home > div{
    height: 80vh;
    width: 100%;
    gap: 10vw;

    img{
        height: 400px;
        width: 500px;
        object-fit: cover;
        border-radius: 15px;
        border: 15px solid var(--white);
        box-shadow: -4px 4px 10px var(--grey);
    }
}

.about > div{
    height: 82vh;
    gap: 2vh;
    width: 100%;

    p {
        text-align: center;
        font-size: 16px;
        font-weight: 100;
    }

    img{
        color: var(--green);
        width: 50px;
    }
}

.posts{
    width: 100%;
}

.post {
    width: 100%;
    gap: 10px;

    img {
        width: 100%;
        height: 20vh;
    }
}

.angebote{

    > div{
    width: 100%;
    gap: 6vh;


    .article{
        display: flex;
        gap: 3vw;
        width: 100%;

        img{
            min-width: 100%;
            height: 300px;
            object-fit: cover;
            border-radius: 15px;
            border: 15px solid var(--white);
            box-shadow: -4px 4px 10px var(--grey);
        }

        .inhalt > div{
            display: flex;
            flex-direction: column;
            gap: 10px;
            max-width: 75vw;

            .wp-block-list {
                    font-weight: 100;
                    font-family: Roboto;
                    font-size: 16px;
                    margin-left: 30px;
            }
        }
    }
}
}

.categorie-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  flex-direction: column;
  padding: 0;
  margin: 0;
}

.projekt > div{
    width: 100%;

    .projekt-detail{
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 2vw;
    }

    .article {
        gap: 2vw;
        flex-direction: column;
        width: 100%;

        img{
            height: 300px;
            min-width: 100%;
            object-fit: cover;
            border-radius: 15px;
            border: 15px solid var(--white);
            box-shadow: -4px 4px 10px var(--grey);
        }
    }
}
}


@media (max-width: 800px) {

header img{
    width: 120px;
    margin-top: 20px;
    display: block;
}

.burger i{
    font-size: 45px;
}

h1 {
    font-size: 45px;
    white-space: normal;
    word-break: normal;      
    overflow-wrap: normal; 
}

form{
    max-width: 100%;
}

.impresum h1{
    word-break: break-all; 
}

h2 {
    font-size: 24px;
}

h3 {
    font-size: 20px;
}
h5{
    font-size: 17px;
}

a{
    font-size: 15px;
}

p, li{
    font-size: 12px;
}

main{
    padding: 0px 50px;
}

section{
    width: 100%;
}


main .home > div{
    height: 60vh;
    width: 100%;
    gap: 3vw;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    img{
        height: 30vh;
        width: 100%;
        object-fit: cover;
        border-radius: 15px;
        border: 10px solid var(--white);
        box-shadow: -4px 4px 10px var(--grey);
    }
}

.about > div{
    height: 60vh;
    gap: 2vh;
    width: 100%;

    p {
        text-align: center;
        font-size: 12px;
        font-weight: 100;
    }

    img{
        color: var(--green);
        width: 30px;
    }
}

.posts{
    width: 100%;
}

.post {
    width: 100%;
    gap: 10px;

    img {
        width: 100%;
        height: 20vh;
    }
}

.angebote{

    > div{
        width: 100%;
        gap: 2vw;


        
        .article{
            flex-direction: column;
            display: flex;
            gap: 2vw;
            width: 100%;
            align-items: flex-start;

            img{
                min-width: 100%;
                height: 300px;
                object-fit: cover;
                border-radius: 15px;
                border: 10px solid var(--white);
                box-shadow: -4px 4px 10px var(--grey);
            }

            .inhalt, .inhalt > div{
                display: flex;
                gap: 10px;
                max-width: 100%;
                

                .wp-block-list {
                    font-weight: 100;
                    font-family: Roboto;
                    font-size: 16px;
                    margin-left: 30px;
                }
            }
        }
    }
}

  .aricle {
    flex-direction: column;
  }

  /* Wenn das Bild im DOM vor .inhalt steht, umdrehen,
     damit der Text trotzdem oben bleibt */
  .article:has(> figure:first-child) {
    flex-direction: column-reverse;
  }

.article > div{
    margin-bottom: 10px;
    margin-top: 20px;
}


footer{
    gap: 4vh;
    flex-direction: column;
    align-items: center;
    padding: 100px 80px;

    img {
        width: 80px;
        object-fit: cover;
    }

    .Contact-Links{
        align-items: center;
        display: flex;
        flex-direction: column;

        h5 {
            font-size: 17px;
        }
    }

    .impressum{
        ul{
            align-items: center;
        }
    }
}

.posts{
    display: grid;
    width: 100%;
    gap: 4vh;
    grid-template-columns: 1fr;
    flex-direction: column;
    justify-content: space-between;
}

.post {
    display: flex;
    width: 100%;
    gap: 5px;
    align-items: flex-start;
    flex-direction: column;
    color: var(--black);
    border-radius: 15px;
    border: 15px solid var(--white);
    box-shadow: -4px 4px 10px var(--grey);


    img {
        width: 100%;
        height: 30vh;
        object-fit: cover;
        object-position: top;
        border-radius: 10px;
        filter: grayscale(100%);
        transition: ease-out 0.2s;

        &:hover {
            filter: grayscale(0%);
        }
    }
}

form input{
    max-width: 100%;
}

.wp-block-contact-form-7-contact-form-selector{
    width: 100%;
}

.wp-block-button{
    font-weight: 100 !important; 
    font-family: Roboto;

    a{
        background-color: var(--green);
        
        font-size: 15px !important;
        padding: 8px 25px !important;
        border-radius: 10px;
        box-shadow: -4px 4px 10px var(--grey);
        border: 2px solid transparent;

        &:hover{
            border: 2px solid var(--green);
            background-color: var(--white);
            color: var(--green);
            transition: 0.2s;
        }
    }
}

/* Scroll-to-Top Button */
#scroll-top-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 42px;
  height: 42px;
  background: var(--black);
  color: var(--white);
  border: none;
  border-radius: 10px;
  font-size: 15px;

&:hover{
    background: var(--black);
    color: var(--white);
}
}

.categorie-list li a{
    background-color: var(--green);
    
    font-size: 15px !important;
    padding: 8px 25px !important;
    border-radius: 10px;
    box-shadow: -4px 4px 10px var(--grey);
    border: 2px solid transparent;

    &:hover{
        border: 2px solid var(--green);
        background-color: var(--white);
        color: var(--green);
        transition: 0.2s;
    }
}

}

@media (max-width: 450px) {
    main{
        padding: 0px 30px;
    }
}