/* GENERAL */
*{
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    box-sizing: border-box;
}
:root{
    --highlight-color: #587656;
    --highlight-color-dark: #476545;
    --background-color: #fff;
    --background-color-dark: #eee;
    --background-color-focus: #aaa;
    --text-color: #000;

    --section-gap: 80px;
}
main{
    max-width: 1920px;
    margin: 0 auto;
}

.prata {
    font-family: "Prata", serif;
    font-weight: 400;
    font-style: normal;
}
.montserrat {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}

h1{
    font-size: 80px;
    color: #fff;
}
h2{
    font-size: 64px;
    margin: 10px 0;
    color: var(--text-color);
}
h3{
    font-size: 40px;
    color: var(--text-color);
}
.text{
    font-size: 20px;
    color: var(--text-color);
}
.subheading{
    font-size: 32px;
    color: var(--text-color);
}

.button{
    background-color: var(--highlight-color);
    color: var(--background-color);
    border: 2px solid var(--highlight-color);

    height: 34px;
    width: 132px;
    border-radius: 17px;
    cursor: pointer;
    text-decoration: none;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.button:hover{
    background-color: var(--background-color);
    color: var(--highlight-color);
    transition: background-color 0.3s ease, color 0.3s ease;
}



/* SCROLLBAR */
::-webkit-scrollbar {
    width: 8px;
}
  
::-webkit-scrollbar-track {
    background: var(--text-color);
}
  
::-webkit-scrollbar-thumb {
    background: var(--highlight-color);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--highlight-color-dark);
}

@-moz-document url-prefix() {
    html {
        scrollbar-width: thin;
        scrollbar-color: var(--highlight-color) var(--text-color);
    }
}



/* SELECTION */ 
::selection {
    background-color: var(--text-color);
    color: var(--background-color);
}

::-moz-selection {
    background-color: var(--text-color);
    color: var(--background-color);
}



/* HEADER */
header nav{
    background-color: rgba(255,255,255,0.8);
    height: 60px;
    justify-content: space-between;
    align-items: center;
    display: flex;
    position: fixed;
    width: 100%;
    backdrop-filter: blur(5px);
    z-index: 10;
}
header nav a{
    color: #000000;
    margin: 15px;
    text-decoration: none;
    font-size: var(--small-text-size);
}
header nav a:hover{
    color: var(--highlight-color);
    cursor: pointer;
}
header .header-logo{
    margin: 15px;
}


.small-media-menu{
    display: none;
    position: absolute;
    left: 0;
    top: 60px;
    width: 100%;
    height: 300px;
    flex-direction: column;
    justify-content: space-around;
    text-align: center;
    background-color: rgba(255,255,255,0.9);
}
.small-media-menu a{
    margin: 0;
    padding: 0;
}
.hide{
    display: none;
    margin-right: 15px;
}
#close{
    display: none;
}

/* SECTIONS */
section{
    padding: var(--section-gap) 0;
    width: 55%;
    margin: 0 auto;
}

.hero-section{
    padding: 5%;
    height: 800px;
    background: url(../resources/images/background.webp);
    background-size: cover;
    background-position: center;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    width: 100%;
}
.hero-section .subheading{
    color: #fff;
    margin-bottom: 1%;
}



.speech-section .subheading, .speech-section h2{
    text-align: center;
}
.speech-section > .text{
    margin: 0 17%;
}
.speech-type-container{
    display: grid;
    justify-content: space-between;
    margin-top: 60px;
    grid-template-columns: 450px 450px;
    grid-template-rows: 450px 450px;
    gap: 20px;
}
.speech-type{
    border-radius: 50px;
    background-color: var(--background-color-dark);
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.speech-section .img-icon{
    width: 56px;
    height: 56px;
    margin-bottom: 10px;

    transition: opacity 0.3s ease;
}
.speech-section h3{
    transition: transform 0.3s ease;
}
.speech-section p{
    opacity: 0;
    position: absolute;
    margin-top: 70px;
    width: 350px;

    transition: opacity 0.3s ease;
}

.speech-type:hover{
    background-color: var(--highlight-color);
    transition: background-color 0.3s ease;
}
.speech-type:hover .img-icon{
    opacity: 0;
}
.speech-type:hover h3{
    transform: translateY(-190%);
    color: var(--background-color);
}
.speech-type:hover p{
    opacity: 1;
    color: var(--background-color);
}
.speech-type p{
    font-size: 16px;
}


.about-section{
    display: flex;
    justify-content: center;
    align-items: center;
}
.about-section .img-large{
    min-width: 320px;
    min-height: 500px;
    background: url(../resources/images/person.webp);
    background-size: 140%;
    background-position: -100px -120px;
    margin-left: 5%;
}
.about-section .img-mobile{
    width: 320px;
    height: 500px;
    background: url(../resources/images/person.webp);
    background-size: 140%;
    background-position: -100px -120px;
    margin-bottom: 20px;
    display: none;
}
.about-section .socialmedia-links{
    display: flex;
}
.about-section .socialmedia-links div{
    background-color: var(--background-color-dark);
    color: var(--text-color);
    border-radius: 50%;
    height: 48px;
    width: 48px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
}
.about-section .socialmedia-links a{
    text-decoration: none;
    margin: 10px 2% 0 0;
}

.about-section .socialmedia-links div:hover{
    cursor: pointer;
    background-color: var(--highlight-color);
    color: var(--background-color);
    transition: background-color 0.3s ease, color 0.1s ease;
}

.package-section .subheading, .package-section h2{
    text-align: center;
}
.package-section > .text{
    margin: 0 17%;
}

.package-section .package-flex-container{
    display: flex;
    justify-content: space-between;
    margin: 60px 0;
}
.package-section .package-flex-container img{
    height: 128px;
    width: 128px;
    border-radius: 50%;

    transition: transform 0.3s ease;
}
.package-section .package-flex-container div{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    transition: color 0.3s ease;
}
.package-section .package-flex-container .package:hover img{
    transform: scale(1.1);
}
.package-section .package-flex-container .package:hover div{
    color: var(--highlight-color);
}
.package-section .package-flex-container .package:hover{
    cursor: pointer;
}
.selected-package-container{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.selected-package{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}
.selected-package .text{
    margin: 10px 5% 10px 0;
}
.package-img{
    min-width: 300px;
    height: 250px;
}



.contact-section .text{
    margin: 0 17%;
}
.contact-section form .form-flex-container{
    display: flex;
    justify-content: space-between;
}
.contact-section form .form-flex-container .form-one{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.form-button{
    display: flex;
    justify-content: center;
    margin-top: 40px;
}
form input, form select{
    height: 70px;
    width: 350px;
    border-radius: 35px;
    background-color: var(--background-color-dark);
    color: var(--text-color);
    border: none;
    padding: 0 20px;
}
form input{
    margin-bottom: 20px;
}
form textarea{
    height: 100%;
    width: 420px;
    border-radius: 0 30px 30px 30px;
    background-color: var(--background-color-dark);
    color: var(--text-color);
    border: none;
    padding: 20px;
    resize: none;

}
form input:focus, form textarea:focus{
    background-color: var(--background-color-focus);
    color: var(--background-color);
    outline: none;
}
form input, form textarea{
    border: 2px solid var(--background-color);
}
form input::selection, form textarea::selection{
    background-color: var(--background-color);
    color: var(--text-color);
}

form select {  /* Custom dropdown arrow */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: var(--background-color-dark);
    border: 2px solid var(--background-color);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z" fill="var(--text-color)"/></svg>');
    background-repeat: no-repeat;
    background-position: right 20px center;
}



.detail-section .subheading{
    margin: 0 0 10px 0;
}
.detail-section h2{
    margin: 0 0 10px 0;
}

.detail-flex-container{
    display: flex;
    justify-content: space-between;
    margin: 0 0 60px 0;
}
.detail-flex-container .detail-img{
    background-color: red;
    min-width: 256px;
    height: 400px;
}
.detail-flex-container .detail-text{
    margin-right: 5%;
}

.detail-flex-container .welcome{
    background: url(../resources/images/baby.jpg);
    background-position: center;
    background-size: cover;
}
.detail-flex-container .wedding{
    background: url(../resources/images/wedding.webp);
    background-position: center;
    background-size: cover;
}
.detail-flex-container .sadness{
    background: url(../resources/images/sadness.webp);
    background-position: center;
    background-size: cover;
}
.detail-flex-container .anniversary{
    background: url(../resources/images/anniversary.webp);
    background-position: center;
    background-size: cover;
}

/* FOOTER */
footer nav{
    background-color: var(--text-color);
    height: 60px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
footer nav a{
    color: #FFF;
    margin: 15px;
    text-decoration: none;
    font-size: var(--small-text-size);
}
footer nav a:hover{
    color: var(--highlight-color);
    cursor: pointer;
}

.go-up{
    height: 64px;
    width: 64px;
    border-radius: 50%;

    position: fixed;
    z-index: 99;
    right: 32px;
    bottom: 128px;

    display: none;
}
.go-up:hover{
    background: none;
}






.reference-section{
    padding: var(--section-gap) 0;
    width: 55%;
    margin: 0 auto;
}
.reference-section .reference-flex-container{
    display: flex;
    justify-content: space-between;
}
.reference-section img{
    width: 128px;
    height: 128px;
    margin-bottom: 20px;
}

.legal-section{
    padding: var(--section-gap) 0;
    width: 55%;
    margin: 0 auto;
}
.legal-section .subheading, .legal-section h2{
    text-align: center;
}
.legal-section > .text{
    margin: 0 17%;
}


/*MEDIA QUERIES*/
@media (max-width: 1400px) {
    section{
        width: 70%;
    }
}
@media (max-width: 1200px) {
    section{
        width: 90%;
    }
}

@media (max-width: 1100px){ /*Mobile Version*/


    h1{
        font-size: 60px;
    }

    .subheading, h2{
        text-align: center;
    }
    .speech-type-container{
        justify-content: center;
        grid-template-columns: 600px;
        grid-template-rows: 250px 250px 250px 250px;
    }
    .speech-type{
        margin-bottom: 20px;
    }
    .speech-section p{
        margin-top: 0px;
        width: 270px;
        margin-left: 220px;
    
        transition: opacity 0.3s ease;
    }
    .speech-type:hover h3{
        transform: translateY(-35%);
        color: var(--background-color);
    }


    .about-section{
        flex-direction: column;
    }
    .about-section .img-mobile{
        display: inline-block;
    }
    .img-large{
        display: none;
    }
    .about-section .text{
        width: 60%;
    }
    .about-section .flex-mobile{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .about-section .socialmedia-links{
        margin: 0 auto;
        align-self: flex-start;
        width: 60%;
    }


    .package-section .package-img{
        display: none;
    }
    .package-section img{
        height: 16px;
        width: 16px;
    }
    .package-section .mobile-package-header{
        font-size: 20px;
        margin-top: 15px;
    }

    .package-section .selected-package-container{
        display: flex;
        justify-content: center;
    }


    .form-flex-container{
        align-items: center;
        flex-direction: column;
    }
    form textarea{
        height: 210px;
        width: 350px;
        margin-top: 20px;
    }

    .detail-flex-container{
        flex-direction: column;
    }
    .detail-section .detail-text{
        align-self: center;
        margin: 0;
        width: 70%;
        margin-bottom: 20px;
    }
    .detail-section .detail-img{
        width: 70%;
        align-self: center;
    }

    @media (max-width: 1100px){
        h1{
            font-size: 40px;
        }
        h2{
            font-size: 32px;
        }
        .subheading{
            font-size: 16px;
            margin-top: 150px;
        }
        h3{
            font-size: 20px;
        }
        .text{
            font-size: 12px;
        }

        
        .speech-type-container{
            justify-content: center;
            grid-template-columns: 300px;
            grid-template-rows: 500px 500px 500px 500px;
        }
        .speech-section p{
            margin-top: 40px;
            margin-left: 0px;
        
            transition: opacity 0.3s ease;
        }
        .speech-type:hover h3{
            transform: translateY(-470%);
            color: var(--background-color);
        }





        .about-section .img-mobile{
            height: 350px;
            width: 250px;
        }
        .about-section .socialmedia-links div{
            height: 35px;
            width: 35px;
        }
        .about-section .socialmedia-links i{
            font-size: 15px;
        }

        .detail-section .detail-img{
            height: 250px;
        }




        .package-section .package-flex-container{
            flex-direction: column;
            gap: 40px;
        }

        .reference-section .reference-flex-container{
            flex-direction: column;
            align-items: center;
        }
        .reference-section img{
            height: 64px;
            width: 64px;
        }

        .reference-section .reference-flex-container > div{
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 20px;
        }

        .package-section .selected-package-container{
            display: block;
        }
        .package-section .selected-package{
            padding-left: 25%;
        }
        .package-section .selected-package #package-information{
            width: 85%;
        }

        .go-up{
            width: 48px;
            height: 48px;
            font-size: 12px;
        }


        footer nav{
            height: 200px;
            flex-direction: column;
            align-items: flex-start;
            justify-content: center;
        }
        footer nav > div{
            display: flex;
            flex-direction: column;
        }
        footer nav a{
            font-size: 10px;
        }

        .standard-menu{
            display: none;
        }
        .hide{
            display: flex;
        }
    }
}