@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');

*{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: 'Bricolage Grotesque', sans-serif;
    letter-spacing: -0.02em;
    font-weight: 400;
}

body{
    line-height: 1.35;

    .container{
        width: 100%;
        margin: 0 auto;

        &.container-s{
            max-width: 900px;
        }

        &.container-m{
            max-width: 1200px;
        }

        &.container-l{
            max-width: 1400px;
        }
    }
}

button, input, select{
    font-size: 1rem;
}

a{
    text-decoration: none;
}

.text-center{
    text-align: center;

    *{text-align: center;}
}

.text-wrapper{
    display: flex;
    flex-direction: column;

    &.text-wrapper-center{
        justify-content: center;
        align-items: center;
    }

    h1:not(:last-child){
        margin-bottom: 32px;
    }

    h2:not(:last-child){
        margin-bottom: 32px;
    }

    h3:not(:last-child){
        margin-bottom: 16px;
    }

    p{
        color: #454545;
        max-width: 500px;
        width: 100%;
    }

    .btn-wrapper{
        margin-top: 48px;
    }
}

h1, .h1{
    font-size: 96px;
    line-height: 1.1;

    span{
        text-decoration: line-through;
    }

    @media screen and (max-width: 768px){
        font-size: 48px;
    }
}

h2, .h2{
    font-size: 64px;
    line-height: 1.2;

    @media screen and (max-width: 768px){
        font-size: 32px;
    }
}

h3, .h3{
    font-size: 32px;
    line-height: 1.25;

    @media screen and (max-width: 768px){
        font-size: 24px;
    }
}

h4, .h4{
    font-size: 20px;
    line-height: 1.35;
}

.btn-wrapper{
    display: flex;
    gap: 24px;
}

.btn{
    text-decoration: none;
    cursor: pointer;
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 0;
    appearance: none;
    transition: all 0.2s ease-in-out;

    &.primary{
        border: 3px solid #36363633;
        color: white;
        background: linear-gradient(180deg,rgba(93, 93, 93, 1) 0%, rgba(31, 31, 31, 1) 100%);
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;

        &:hover{
            border: 3px solid #36363675;
        }
    }

    &.secondary{
        border: 3px solid #e0dddd75;
        color: black;
        background: white;

        &:hover{
            border: 3px solid #e0ddddb9;
        }
    }

}

.module{
        width: 100%;

        &.module-hero{
            background-image: url(/images/background-hero-min.webp);
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            padding: 32px 24px 128px;

            .container{
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                gap: 48px;

                .logo{
                    width: 41px;
                    height: 48px;
                    object-fit: contain;
                }
            }
        }

        &.module-arguments{
            padding: 128px 24px;

            .container{
                display: flex;
                flex-direction: column;
                gap: 48px;

                .grid-wrapper{
                    display: grid;
                    grid-template-areas: "a c" "b c";
                    grid-template-columns: repeat(2, 1fr);
                    grid-template-rows: repeat(2, 1fr);
                    gap: 16px;
                    width: 100%;

                    @media screen and (max-width: 768px){
                        display: flex;
                        flex-direction: column;
                    }

                    .item-card{
                        display: flex;
                        flex-direction: column;
                        gap: 48px;
                        height: auto;
                        width: 100%;
                        padding: 32px;

                        &:nth-child(1){
                            grid-area: a;
                            background-color: #F5D3AC;
                        }

                        &:nth-child(2){
                            grid-area: b;
                            background-color: #F2B3D6;

                        }

                        &:nth-child(3){
                            grid-area: c;
                            background-color: #F6E2B4;
                        }

                        .item-card-icon{
                            width: 52px;
                            min-width: 52px;
                            height: 52px;
                            min-height: 52px;
                            object-fit: contain;
                        }

                        .text-wrapper{
                            p{
                                width: 100%;
                            }
                        }

                        .btn{
                            margin-top:auto;
                            width: fit-content;
                        }
                    }
                }
            }
        }

        &.module-don{
            padding: 128px 24px;
            background-image: url(/images/background-black-min.webp);
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;

            >.container-l{
                padding: 72px 48px;
                background: white;

                .container-m{
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    gap: 48px;

                    .grid-wrapper{
                        width: 100%;
                        display: grid;
                        grid-template-areas: "a a a" "b c d";
                        grid-template-columns: repeat(3, 1fr);
                        grid-template-rows: repeat(2, 1fr);
                        gap: 16px;

                        @media screen and (max-width: 920px){
                            display: flex;
                            flex-direction: column;
                        }

                        .item-card{
                            width: 100%;
                            height: 100%;
                            min-height: 400px;
                            padding: 32px;
                            position: relative;
                            overflow: hidden;

                            &:nth-child(1){
                                grid-area: a;
                            }

                            &:nth-child(2){
                                grid-area: b;
                            }

                            &:nth-child(3){
                                grid-area: c;
                            }

                            &:hover{
                                .item-card-bg{
                                    transform: scale(1.05);
                                }
                            }

                            .item-card-bg{
                                width: 100%;
                                height: 100%;
                                object-fit: cover;
                                object-position: center;
                                position: absolute;
                                top: 0;
                                left: 0;
                                transition: transform 1s ease;
                            }

                            .item-card-content{
                                height: 100%;
                                display: flex;
                                flex-direction: column;
                                justify-content: space-between;
                                gap: 16px;
                                position: relative;
                                z-index: 1;

                                .item-card-logo{
                                    width: fit-content;
                                    max-width: 100%;
                                    height: 48px;
                                    object-fit: contain;
                                    margin-bottom: auto;
                                }

                                h3{
                                    color: white;
                                    margin-top: auto;
                                }
                            }
                        }

                        .item-form{
                            padding: 32px;
                            background: #F6E2B4;
                            display: flex;
                            flex-direction: column;
                            gap: 32px;

                            .form{
                                display: flex;
                                flex-direction: column;
                                gap: 32px;

                                .field{
                                    display: flex;
                                    flex-direction: column;
                                    gap: 16px;

                                    select{
                                        padding: 20px 24px;
                                        appearance: none;
                                        border: none;
                                        background-image: url("data:image/svg+xml,%0A%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.99996 4.16675V15.8334M9.99996 15.8334L15.8333 10.0001M9.99996 15.8334L4.16663 10.0001' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
                                        background-repeat: no-repeat;
                                        background-position: calc(100% - 24px) center;
                                    }

                                    .options{
                                        display: flex;
                                        gap: 16px;
                                        width: 100%;

                                        @media screen and (max-width: 768px){
                                            flex-wrap: wrap;
                                        }

                                        .option{
                                            padding: 20px 24px;
                                            cursor: pointer;
                                            background: white;
                                            opacity: 0.5;
                                            width: 100%;
                                            transition: opacity 0.3s ease;
                                            text-align: center;

                                            &.active{
                                                opacity: 1;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        &.module-newsletter{
            padding: 128px 48px;
            .container{
                display: flex;
                gap: 48px;

                @media screen and (max-width: 920px){
                    flex-direction: column;
                }

                .snake{
                    width: 380px;
                    max-width: 100%;
                    height: fit-content;
                    border: 1px solid #8E8E8E;
                    line-height: 0;
                    position: relative;

                    &:hover{
                        border-color: rgb(57, 57, 57);
                    }

                    img{
                        width: 100%;
                        height: auto;
                        object-fit: cover;
                        object-position: center;
                    }

                    .snake-effect{
                        width: 38px;
                        height: 18px;
                        position: absolute;
                        top: 0;
                        right: 0;
                        z-index: 1;
                    }
                }
            }
        }
    }