:root {
    --main-bg-color: #0C306C;
    --main-text-color: #0C306C;
    --accent-color: #FFDD00;
    --main-font: 'Roboto Condensed', sans-serif;
    --happy-font: 'happynessV2', sans-serif;
}

a,
a:visited,
a:hover,
a:active {
    color: inherit;
    text-decoration: none;
}


html {
    scroll-behavior: smooth;
}

@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap');

@font-face {
    font-family: 'happynessV2';
    src: url('src/fonts/happynessV2.ttf') format('opentype');
    font-weight: normal;
    font-style: normal;
}


body {
    background-color: var(--main-bg-color);
    color: var(--main-text-color);
    font-family: var(--main-font);
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    header {
        text-align: center;
        padding: 1% 0;
    }

    main {
        display: flex;
        justify-content: center;
        flex-direction: column;
        align-items: center;
        width: 100%;
        background:
            linear-gradient(0deg,
                rgba(12, 48, 108, 1) 9%,
                rgba(23, 93, 210, 0) 60%),
            url('src/images/hero_background.jpg') no-repeat center center;
        background-size: cover;
        height: 100%;

        img {
            width: 100%;
            max-width: 495px;
            height: auto;
            margin: 0 auto;
            padding: 5% 0 0 0;
        }

        p {
            position: relative;
            font-family: var(--main-font);
            font-size: 36px;
            text-align: center;
            max-width: 40%;
            color: #fff;
            margin: 5%;
            top: 2rem;

            span {
                color: var(--accent-color);
            }
        }
    }

    .hero {
        display: flex;
        position: relative;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        background: linear-gradient(to bottom,
                white 0%,
                white 90%,
                transparent 90%,
                transparent 100%);
        border-radius: 3%;
        max-width: 85%;
        margin: 0 0 12% 0;

        .hero_content {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 2%;

            iframe {
                margin-top: 2%;
                border-radius: 16px;
                box-shadow: 0 10px 24px rgba(0, 0, 0, .15);
                width: 95%;
                max-width: 1420px;
            }

            h2 {
                font-size: 36px;
                font-family: var(--happy-font);
                font-weight: normal;
                color: var(--main-text-color);
            }

            p {
                font-size: 20px;
                max-width: 70%;
                text-align: center;
                margin-top: 0;
            }
        }

        .hero_cards {
            display: flex;
            /* position: absolute; */
            width: 100%;
            justify-content: space-around;
            /* top: 59rem; */

            .card {
                /* position: relative; */
                background: linear-gradient(to bottom,
                        white 0%,
                        white 95%,
                        transparent 95%,
                        transparent 100%);
                display: flex;
                flex-direction: column;
                align-items: center;
                border-radius: 20px;

                img {
                    display: block;
                    object-fit: cover;
                    width: 101%;
                    height: 100%;
                    margin-bottom: 5%;
                }

                p {
                    width: 80%;
                    text-align: center;
                    background-color: var(--accent-color);
                    color: var(--main-text-color);
                    font-weight: bold;
                    padding: 0.5rem 0;
                    border-radius: 9999px;
                    font-size: 20px;
                    margin: 0;
                }
            }
        }
    }

    .cta {
        width: 100%;
        background: url('src/images/cta_background.png') no-repeat center center;
        background-size: cover;
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        h2 {
            font-family: var(--happy-font);
            font-size: 42px;
            text-align: center;
            color: #fff;
            font-weight: normal;
            margin: 0;
            padding-bottom: 2%;
        }

        .cta_content {
            display: flex;
            flex-direction: column;
            align-items: center;

            .cta_cards {
                display: flex;
                justify-content: center;

                p {
                    font-family: var(--main-font);
                    font-size: 20px;
                    text-align: center;
                    color: var(--main-text-color);
                    max-width: 19%;
                    margin: 2rem;
                    background-color: #FFFFFFCC;
                    border-radius: 40px;
                    height: 110px;
                    padding: 2rem 1rem;

                    span {
                        font-weight: bolder;
                    }
                }
            }

            h2 {
                margin-top: 2%;
                padding: 0;
            }

            p {
                font-family: var(--main-font);
                font-size: 25px;
                font-weight: bolder;
                background-color: var(--accent-color);
                padding: 1.5rem 2.5rem;
                border-radius: 20px;
                margin-bottom: 10%;
            }

        }

        .float_card {
            position: absolute;
            background-color: #FFFFFFCC;
            max-width: 70%;
            top: 92%;
            padding: 5rem 5rem 2rem 5rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            border-radius: 40px;

            h2 {
                color: var(--main-text-color);
                max-width: 60%;
            }

            p {
                text-align: center;
                font-size: 20px;
                max-width: 80%;
            }
        }
    }



    .forms {
        font-size: 18px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;

        h2 {
            color: #fff;
            margin: 1%;
        }

        .forms_content {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background: url('src/images/form_background.png') no-repeat center center;
            background-size: cover;
            width: 100%;
            height: auto;
            border-radius: 10px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);

            p {
                text-align: center;
                color: #fff;
                font-size: 20px;
                max-width: 55%;
                margin: 3% 0 5% 0;
            }

            .form-campanha {
                color: #fff;
                width: 40%;

                div {
                    display: flex;
                    justify-content: right;
                    align-items: center;
                    gap: 5%;
                }

                label {
                    font-size: 18px;
                    text-align: right;
                    margin-bottom: 8px;
                    width: 40%;
                }

                input,
                select {
                    width: 800px;
                    padding: 10px;
                    margin-bottom: 15px;
                    border: none;
                    border-radius: 5px;
                    font-size: 16px;
                    background-color: #CCD9D9D9;
                }

                .form_div_breaker {
                    display: flex;
                    width: 100%;
                    gap: 0;

                    input {
                        width: 100%;
                        margin-right: 10%;
                    }

                    select {
                        width: 260px;
                    }
                }
            }

            button {
                background-color: #F8E85D;
                color: var(--main-text-color);
                font-size: 18px;
                padding: 15px 30px;
                margin: 1% 0 3% 10%;
                border: none;
                border-radius: 20px;
                cursor: pointer;
                transition: background-color 0.3s;
                font-weight: bolder;

                &:hover {
                    background-color: var(--main-text-color);
                    color: var(--accent-color);
                }
            }
        }
    }

    footer {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;

        img {
            margin: 20% 0 2% 0
        }

        div {
            display: flex;
            width: 100%;
            justify-content: space-around;
            margin-bottom: 2%;
            align-items: center;
        }
    }
}

:root {
    --card-radius: 16px;
    --track-gap: 1.25rem;
    --slides-per-view: 3;
    --text-dark: #0b2540;
}

.carousel {
    position: relative;
    padding: 2rem 1rem 3.5rem;
    border-radius: 16px;
    max-width: 1700px;
    margin: 15% auto 0;
    color: #1a1a1a;
}

.carousel .nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    color: #1a1a1a;
    box-shadow: 0 6px 14px rgba(0, 0, 0, .15);
    cursor: pointer;
    font-size: 28px;
    line-height: 44px;
    text-align: center;
    z-index: 3;
}

.carousel .prev {
    left: -34px;
}

.carousel .next {
    right: -34px;
}

.carousel-viewport {
    overflow: hidden;
    border-radius: 12px;
}

.carousel-track {
    display: flex;
    gap: var(--track-gap);
    transition: transform .35s ease;
    will-change: transform;
    width: calc(100% * var(--slides-per-view) / var(--slides-per-view));
}

.carousel-slide {
    flex: 0 0 calc((100% - (var(--track-gap) * (var(--slides-per-view) - 1))) / var(--slides-per-view));
}

.carousel-card {
    background: #fff;
    padding: 12px;
    border-radius: 20px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
    position: relative;
}

.card-thumb,
.carousel-card iframe {
    display: block;
    width: 100%;
    height: 190px;
    border-radius: var(--card-radius);
    background: center/cover no-repeat;
    position: relative;
    overflow: hidden;
}

.play {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #ffffffcc;
    box-shadow: 0 6px 14px rgba(0, 0, 0, .2);
}

.play::before {
    content: "";
    position: absolute;
    left: 26px;
    top: 20px;
    border-left: 18px solid #fff;
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
}

.card-info {
    text-align: center;
    padding: 10px 8px 12px;
}

.card-info h3 {
    margin: 6px 0 2px;
    font-size: 18px;
    font-weight: 800;
    color: var(--text-dark);
}

.card-info p {
    margin: 0;
    opacity: .85;
    font-size: 14px;
}

.carousel-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
}

.carousel-dots .dot {
    width: 10px;
    height: 10px;
    background: #c9d3e3;
    border-radius: 50%;
    border: 0;
    cursor: pointer;
}

.carousel-dots .dot.active {
    background: #fff;
    width: 10px;
    height: 10px;
}

.carousel-viewport {
  overflow: hidden;
  /* permite arrastar na horizontal sem “pegar” o scroll vertical */
  touch-action: pan-y;
}

.carousel-track {
  display: flex;
  transition: transform .4s ease;
  will-change: transform;
}

/* cada slide ocupa 1/n da largura conforme --slides-per-view */
.carousel-slide {
  flex: 0 0 calc(100% / var(--slides-per-view));
}


@media (max-width: 1024px) {
    :root {
        --slides-per-view: 2;
    }

    .card-thumb,
    .carousel-card iframe {
        height: 180px;
    }
}

@media (max-width: 640px) {
    :root {
        --slides-per-view: 1;
    }

    .carousel {
        padding: 1rem .5rem 2.5rem;
    }

    .carousel .prev,
    .carousel .next {
        display: none;
    }

    .card-thumb,
    .carousel-card iframe {
        height: 200px;
    }
}