body:has(.quiz) {
    overflow-y: scroll;
}

body.claro:has(.quiz) {

    .topo:after {
        position: absolute;
        z-index: -2;
        top: calc(50% - 140px);
        left: calc(50% - 140px);
        width: 280px;
        height: 280px;
        border-radius: 100%;
        background-color: #F2EDEA;
        content: "";
    }

}

.quiz {

    position: relative;
    min-height: 100dvh;
    overflow: clip;

    .botao {

        position: relative;
        display: table;
        margin: 0 auto;
        padding: 12px 24px;
        border: 0;
        border-radius: 19px;
        font-family: 'Montserrat', sans-serif;
        font-weight: 500;
        font-size: 12px;
        line-height: 14px;
        letter-spacing: normal;
        text-transform: uppercase;
        text-decoration: none !important;
        color: rgba(255, 255, 255, 1) !important;
        background-color: #515A5F;
        cursor: pointer;
        -webkit-transition: all 100ms ease-in-out;
        -moz-transition: all 100ms ease-in-out;
        -ms-transition: all 100ms ease-in-out;
        -o-transition: all 100ms ease-in-out;
        transition: all 100ms ease-in-out;

        &:hover,
        &:focus {
            &:not([disabled]) {
                background-color: #A36180;
                color: rgba(255, 255, 255, 1) !important;
            }
        }

        &[disabled] {
            background-color: #515A5F;
            opacity: 0;
        }

    }

    .capa {

        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;
        width: 100%;
        min-height: 100dvh;
        background-color: #2f3032;

        &:before {
            position: absolute;
            z-index: 2;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            content: "";
            background: url(imagens/textura.png) top left;
            mix-blend-mode: exclusion;
        }

        img {

            position: absolute;
            z-index: 1;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: .8;

            + img {
                z-index: 3;
                opacity: 1;
            }

        }

    }

    header.titulo-de-pagina h1 {
        font-size: 38px;
        line-height: 44px;
    }

    header.titulo-de-pagina + figure {
        position: relative;
        margin: -120px auto 40px;
    }

    header.titulo-de-pagina + figure:after {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        border: 10px solid transparent;
        border-right-color: #F06814;
        border-bottom-color: #F06814;
        box-sizing: border-box;
        pointer-events: none;
        content: "";
    }

    header.titulo-de-pagina + figure img {
        display: block;
        width: 220px;
        border-radius: 100%;
    }

    header.titulo {

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-end;
        height: 100dvh;
        padding-bottom: 100px;
        box-sizing: border-box;
        text-align: center;

        h1 {
            margin-bottom: 24px;
            font-size: 38px;
            font-weight: 700;
            line-height: 42px;
            color: white;
        }

        h2 {
            margin: 0;
            font-size: 11px;
            font-weight: 500;
            line-height: 16px;
            color: white;
        }

        .botao {

            border-radius: 20px;
            font-size: 16px;
            font-weight: 500;
            line-height: 16px;
            color: rgba(255, 255, 255, 1) !important;
            background-color: #663C50;
            
            &:hover,
            &:focus {
                &:not([disabled]) {
                    background-color: #A36180;
                    color: rgba(255, 255, 255, 1) !important;
                }
            }

        }

    }

    .introducao .botao {
        
        border-radius: 20px;
        font-size: 16px;
        font-weight: 500;
        line-height: 16px;
        color: rgba(255, 255, 255, 1) !important;
        background-color: #F06814;
        
        &:hover,
        &:focus {
            &:not([disabled]) {
                background-color: #A36180;
                color: rgba(255, 255, 255, 1) !important;
            }
        }

    }

    .introducao header,
    .questao header,
    .lead header,
    .resultado header {

        position: relative;
        width: 100%;
        margin: 0 auto 48px;
        padding: 270px 0 48px;
        box-sizing: border-box;
        border-bottom: 1px dashed #C8C9CB;
        text-align: center;

        * {
            max-width: 800px;
            margin: 0 auto;
        }

    }

    .introducao header h4,
    .questao header h4,
    .lead header h4,
    .resultado header h4 {
        margin-top: -10px;
        margin-bottom: 15px;
        font-size: 17px;
        line-height: 24px;
        text-transform: uppercase;
        color: #515A60;
    }

    .introducao header h3,
    .questao header h3,
    .lead header h3,
    .resultado header h3 {
        font-size: 38px;
        line-height: 44px;
        font-weight: 700;
        text-transform: none;
        color: #515A60;
    }

    .swiper-slide {
        opacity: 0;
        transition: opacity 300ms ease-in-out 300ms;
    }

    .swiper-slide-active {
        opacity: 1;
    }

    .introducao {

        .conteudo {
            margin-bottom: 0;
        }
    
        footer {

            position: sticky;
            bottom: 0;

            div {

                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                height: 100%;
                padding: 0 64px 32px;
                background-color: #3A4145;
                transform: translateY(calc(100% + 20px));
                transition: transform 150ms ease-in-out 1000ms;

                &:before {
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    background: url('imagens/textura.png') top left;
                    content: "";
                    opacity: .3;
                }

            }

            .botao {
                transform: translateY(-50%);
            }

            p {
                position: relative;
                margin: 0;
                font-family:'Montserrat', sans-serif;
                font-size: 10px;
                font-weight: 500;
                line-height: 14px;
                color: rgba(255, 255, 255, .8);
                text-align: center;
            }

        }

    }

    .swiper-slide-active.introducao footer div {
        transform: translateY(0);
    }

    .questao,
    .lead { 
    
        fieldset {

            display: flex;
            flex-direction: column;
            row-gap: 12px;
            max-width: 400px;
            margin: 0 auto;
            padding: 0 32px 24px;
            border: none;

            label:has(input[type=radio]),
            label:has(input[type=checkbox]) {

                position: relative;
                padding: 12px 20px;
                border: 1px solid #AEAFB2;
                border-radius: 8px;
                font-family: 'Montserrat', sans-serif;
                font-size: 14px;
                font-weight: 600;
                line-height: 24px;
                color: #515A60;
                text-transform: uppercase;
                cursor: pointer;
                * { cursor: pointer; }

                &:before {
                    position: absolute;
                    top: calc(50% - 12px);
                    right: 20px;
                    width: 24px;
                    height: 24px;
                    border-radius: 100%;
                    border: 1px solid #AEAFB2;
                    content: "";
                }

                &:focus-within {
                    outline: none;
                    background-color: rgba(0,0,0,.05);
                }

            }

            label:has(input[type=checkbox]) {

                &:before {
                    border-radius: 4px;
                }

            }

            label:has(input[type=radio]:checked),
            label:has(input[type=checkbox]:checked) {

                background-color: rgba(0,0,0,.05);

                &:before {
                    border: 1px solid #F06814;
                    background-color: #F06814;
                }

                &:after {
                    position: absolute;
                    top: calc(50% - 6px);
                    right: 30px;
                    width: 5px;
                    height: 10px;
                    border: 1px solid white;
                    border-width: 0 1px 1px 0;
                    transform: rotate(45deg);
                    content: "";
                }

            }

            input[type=radio],
            input[type=checkbox] {
                position: absolute;
                appearance: none;
            }

            input[type=text],
            input[type=email],
            input[type=tel] {

                display: block;
                width: 100%;
                box-sizing: border-box;
                padding: 12px 20px;
                border: 1px solid #AEAFB2;
                border-radius: 8px;
                font-family: 'Montserrat', sans-serif;
                font-size: 14px;
                font-weight: 600;
                line-height: 24px;
                color: #515A60;
                background-color: transparent;

                &::placeholder {
                    opacity: .5;
                    text-transform: uppercase;
                }

                &:focus {
                    outline: none;
                    background-color: rgba(255, 255, 255, .5);
                }

            }

            .obrigatorio {
                display: none;
            }

            label.invalido.touched {

                input {

                    color: #E23068;
                    border-color: #E23068;

                    &::placeholder {
                        color: #E23068;
                    }

                }

                .obrigatorio {
                    display: block;
                    padding: 6px 8px 0;
                    font-family: 'Montserrat', sans-serif;
                    font-size: 10px;
                    font-weight: 400;
                    line-height: 14px;
                    color: #E23068;
                }

            }

        }

    }

    .lead,
    .resultado {

        footer {

            padding: 0 32px;

            p {
                margin-top: 16px;
                font-family: 'Montserrat', sans-serif;
                font-size: 10px;
                font-weight: 500;
                line-height: 14px;
                color: #515A60;
                text-align: center;
            }
        }

    }

    .questao:has(*:checked) {

        .botao[type=submit][disabled] {
            background-color: #515A5F;
            opacity: .5;
        }

    }

    .lead {

        .botao[disabled] {
            background-color: #515A5F;
            opacity: .5;
        }

    }

    .resultado {

        header {

            padding-bottom: 0;
            margin-bottom: 116px;

            .valor {

                position: relative;
                margin: 16px auto -100px;

                .percentual {
                    position: absolute;
                    top: 0;
                    left: 0;
                    width: 100%;
                    height: 100%;
                    font-family: 'Montserrat', sans-serif;
                    font-size: 80px;
                    font-weight: 600;
                    line-height: 200px;
                    color: #515A60;
                }

                svg {

                    display: block;
                    margin: 0 auto;
                    max-width: 200px;
                    max-height: 200px;

                    circle { 
                        fill: #d9d4d2; 
                    }
                    
                    path { 
                        stroke-width: 2; 
                        stroke: #F06814; 
                        fill: none; 
                        stroke-linecap: butt; 
                        transition: stroke-dasharray 500ms ease-in-out; 
                    }
                
                }

            }

        }

        .mensagem {
            padding: 0 32px 16px;
            font-family: 'Montserrat', sans-serif;
            font-size: 12px;
            font-weight: 400;
            line-height: 18px;
            color: #515A60;
            text-align: center;
        }

        footer {
            padding: 0 62px;
        }

    }

}

@media screen and (min-width:1025px) and (min-height:701px) {

    .quiz {

        header.titulo {
            justify-content: center;
            padding-top: 20vh;
            padding-bottom: 0;
        }

    }
    
}

@media screen and (max-width:759px) {

    body.claro:has(.quiz) {

        .topo:after {
            top: calc(50% - 100px);
            left: calc(50% - 100px);
            width: 200px;
            height: 200px;
        }

    }
    
    .quiz {

        header.titulo-de-pagina h1 {
            font-size: 19px;
            line-height: 26px;
        }

        header.titulo-de-pagina + figure {
            margin: -100px auto 32px;
        }

        header.titulo-de-pagina + figure img {
            width: 200px;
        }

        header.titulo {

            padding-bottom: 60px;
            padding-inline: 32px;

            h1 {
                margin-bottom: 18px;
                font-size: 28px;
                line-height: 32px;
            }

            h2 {
                margin-bottom: 6px;
            }

            .botao {
                font-size: 15px;
            }

        }

        .introducao header,
        .questao header,
        .lead header {
            padding: 180px 32px 32px;
            margin-bottom: 32px;
        }

        .resultado header {
            padding: 180px 32px 0;
            margin-bottom: 116px;
        }

        .introducao header h4,
        .questao header h4,
        .lead header h4,
        .resultado header h4 {
            font-size: 12px;
            line-height: 20px;
            margin-bottom: 10px;
            margin-top: 0;
        }

        .introducao header h3,
        .questao header h3,
        .lead header h3,
        .resultado header h3 {
            font-size: 19px;
            line-height: 26px;
        }

        .conteudo {

            width: 100%;
            padding: 0 40px 50px;
            box-sizing: border-box;

            p, li {
                font-size: 14px;
                font-weight: 400;
                line-height: 26px;
            }

        }

    }

}

.quiz-cta {

    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 24px;
    box-sizing: border-box;
    background-color: rgba(0,0,0,.25);

    .quiz {

        width: min(100%, 600px);
        min-height: 0;
        height: min(100%, 670px);
        
        border-radius: 16px;
        box-shadow: 0 0 50px rgba(0,0,0,.25);

        .capa {

            min-height: 100%;

            &.smartphone img {
                top: auto;
                bottom: 0;
                height: 120%;
            }

        }

        header.titulo {

            justify-content: flex-end;
            height: 100%;
            padding-bottom: 64px;

            h1 {
                margin-bottom: 20px;
                font-size: 32px;
            }

            h2 {
                width: 70%;
            }

            a.agendamentos {

                margin-top: 12px;
                padding-bottom: 6px;
                font-family: 'Montserrat', sans-serif;
                font-size: 11px;
                font-weight: 500;
                line-height: 16px;
                color: white;
                text-transform: uppercase;
                border-bottom: 1px solid white;
                text-decoration: none;
                opacity: .8;

                &:hover,
                &:focus {
                    opacity: 1;
                }

            }

        }

        button.fechar {

            position: absolute;
            top: 16px;
            right: 16px;
            width: 32px;
            height: 32px;
            border: 0;
            background-color: transparent;
            cursor: pointer;

            &:before, &:after {
                position: absolute;
                top: 50%;
                left: 50%;
                width: 16px;
                height: 2px;
                background-color: white;
                content: "";
            }

            &:before {
                transform: translate(-50%, -50%) rotate(45deg);
            }

            &:after {
                transform: translate(-50%, -50%) rotate(-45deg);
            }

            &:hover,
            &:focus {
                &:before, &:after {
                    opacity: .8;
                }
            }

        }

    }

}

@media screen and (max-width:759px) {

    .quiz-cta {

        align-items: flex-end;

        .quiz {

            max-height: 490px;

            header.titulo {

                padding-bottom: 48px;

                h1 {
                    margin-bottom: 20px;
                    font-size: 28px;
                }

            }

        }

    }

}