/* Geral */
:root {
    --clr1-light: #ed323811;
}

/* Botões CTA */
#example a, #cta a {
    transition: all .2s;

    &:hover {
        color: var(--white);
        transform: scale(1.07);
    }
}

/* Espaço para menu  */
main#container, .sptb-sm {
    padding-top: 72px !important;
}

/* Principal */
main#container {
    background-color: var(--light-grey);
    min-height: 100dvh;

    p, h1, h2 {
        margin: 0;
    }
    p { line-height: 26px; }
}

/* Etapas */
#steps .content {
    padding: 2rem 1rem;

    .subcontent {
        .top p { margin: 0; }

        .bars {
            --gap-bars: .7rem;

            gap: var(--gap-bars);

            .bar {
                width: calc((100% - (var(--gap-bars) * 2)) / 3);
                height: 7px;
                border-radius: 8px;
                background-color: rgba(0, 0, 0, .2);

                &.solid { background-color: var(--clr1); }
            }
        }
    }

    .selected-data {
        box-shadow: 0 10px 40px 0 rgba(62, 57, 107, 0.1), 0 2px 9px 0 rgba(62, 57, 107, 0.1);
        padding: 1rem;
        border-radius: 8px;

        .vehicle {
            .icon {
                padding: .7rem;
                background-color: #eaf7ef;
                border-radius: 8px;
                
                svg {
                    width: 24px;
                    height: 24px;
                    color: #278654;
                }
            }

            .texts .subtitle { color: #278654; }
        }
    }
}

/* Seções e Header */
header, section:not(:last-child):not(:first-child) {
    border-bottom: 1px solid rgba(0, 0, 0, .2);
}

/* Header */
#header .content {
    padding: 1rem 1rem 2rem;

    .subcontent {
        .texts {
            width: 55%;

            .top {
                .flags .flag {
                    font-size: 13px;
                    font-weight: 700;
                    letter-spacing: 1px;
                    color: var(--clr1);
                    border-radius: 24px;
                    border: 1px solid var(--clr1);
                    padding: .4rem .8rem;
                    background-color: var(--clr1-light);
                    width: auto;
                    text-transform: uppercase;
                    height: auto;
                }

                .title h1 { line-height: 56px; }
            }

            .items .item {
                display: flex;
                align-items: center;
                gap: 1rem;

                .icon {
                    box-shadow: 0 0 6px 2px rgba(0, 0, 0, .05);
                    background-color: var(--white);
                    border-radius: 8px;
                    padding: .8rem;

                    svg {
                        width: 24px;
                        height: 24px;
                        fill: var(--clr1);
                        display: flex;
                    }
                }

                .about {
                    display: flex;
                    flex-direction: column;
                    gap: .2rem;

                    h2 {
                        font-size: 15px;
                        font-weight: 600;
                        color: var(--black);
                    }

                    p {
                        font-size: 15px;
                        color: var(--clr-dark-paragraph);
                    }
                }
            }
        }

        .form {
            width: 45%;
            padding: 2rem 1.5rem 1.5rem;
            box-shadow: 0 0 8px 3px rgba(0, 0, 0, .05);

            .fields {
                gap: 1rem;
                
                .field {
                    &:not(:last-child) {
                        border-bottom: 1px solid rgba(0, 0, 0, .2);
                        padding-bottom: 1rem;
                    }

                    .plate-field {
                        margin-top: .3rem;

                        .plate-show {
                            border: 1px solid rgba(0, 0, 0, .2);

                            .country {
                                background-color: #1d64b7;
                                border-radius: 10px 10px 0 0;
                                display: flex;
                                align-items: center;
                                justify-content: center;
                                padding: .2rem 1rem;
                            }

                            input#carPlate {
                                padding: .7rem 1rem;
                                border-radius: 0 0 8px 8px;

                                &.input-error {
                                    border: 2px solid var(--clr-error);
                                }
                            }
                        }
                    }

                    .captions .example {
                        border: none;
                        padding: 0;
                    }
                }
            }

            .action button {
                height: auto;
                line-height: 24px;
                margin: 0;
                transition: all .3s;

                &.disabled {
                    position: relative;
                    cursor: no-drop;
                    
                    &::before {
                        content: '';
                        width: 100%;
                        height: 100%;
                        position: absolute;
                        left: 0;
                        top: 0;
                        background-color: var(--white);
                        opacity: .6;
                        border-radius: 8px;
                    }
                }

                &:hover:not(.disabled) { transform: scale(1.07); }
            }
        }
    }

    .points {
        box-shadow: 0 0 8px 3px rgba(0, 0, 0, .05);

        .point {
            width: calc(100% / 3);
            padding: 1.1rem 1.5rem;
            display: flex;
            align-items: center;
            gap: .8rem;

            &:not(:first-child) {
                border-left: 1px solid rgba(0, 0, 0, .2);
            }

            .icon {
                background-color: var(--clr1-light);
                padding: .8rem;
                border-radius: 50%;
                
                svg {
                    fill: var(--clr1);
                    width: 24px;
                    height: 24px;
                    display: flex;
                }
            }

            .about {
                display: flex;
                flex-direction: column;
                gap: .1rem;

                h2 {
                    font-size: 16px;
                    font-weight: 600;
                    color: var(--black);
                }

                p {
                    font-size: 15px;
                    color: var(--clr-dark-paragraph);
                }
            }
        }
    }
}

/* Benefícios */
#benefits .content .items {
    --gap-benefits: 1rem;
    --qtd-benefits: 4;

    gap: var(--gap-benefits);

    .item {
        background-color: var(--light-grey);
        border: 1px solid rgba(0, 0, 0, .2);
        border-radius: 12px;
        display: flex;
        flex-direction: column;
        gap: 1.2rem;
        padding: 1rem;
        width: calc((100% - (var(--gap-benefits) * (var(--qtd-benefits) - 1))) / var(--qtd-benefits));
        transition: all .3s;

        &:hover {
            box-shadow: 0 0 8px 2px rgba(0, 0, 0, .05);
            border-color: var(--clr1);
            background-color: var(--white);
        }

        .icon {
            background-color: var(--clr1-light);
            border-radius: 8px;
            padding: .7rem;
            width: fit-content;
        }

        .infos {
            display: flex;
            flex-direction: column;
            gap: .3rem;

            h3 {
                font-size: 16px;
                font-weight: 600;
                color: var(--black);
            }

            p {
                font-size: 15px;
                color: var(--clr-dark-paragraph);
            }
        }
    }
}

/* Exemplo */
#example .content {
    padding-bottom: 5rem;

    .illustration {
        position: relative;

        .desktop {
            border: solid var(--clr2);
            border-width: 10px 10px 20px 10px;
            background-color: var(--clr2);

            .menu {
                padding: .6rem;
                border-radius: 8px 8px 0 0;

                .dot {
                    width: 8px;
                    height: 8px;
                    border-radius: 50%;
                    
                    &.fst { background-color: #e63833; }
                    &.snd { background-color: #e8b43f; }
                    &.thd { background-color: #42a36b; }
                }
            }

            .body {
                .left {
                    width: 30%;
                    flex-shrink: 0;
                    padding: 1rem;
                    border-radius: 0 0 0 8px;
                }

                .right {
                    border-radius: 0 0 8px 0;
                    padding: 1rem 1rem 5rem;

                    .list-infos {
                        gap: .6rem;

                        .info-group {
                            width: 100%;
                            display: flex;
                            justify-content: space-between;
                            align-items: center;
                            gap: .8rem;

                            .name {
                                font-size: 13px;
                                color: var(--clr-dark-paragraph);
                                font-weight: 500;
                            }

                            .status {
                                font-size: 12px;
                                font-weight: 600;
                                padding: .2rem .5rem;
                                border-radius: 24px;

                                &.good {
                                    background-color: #eaf7ef;
                                    color: #278654;
                                }
                                &.medium {
                                    background-color: #fff5dc;
                                    color: #b56c1d;
                                }
                            }
                        }
                    }
                }
            }
        }

        .mobile {
            position: absolute;
            right: 110px;
            bottom: -45px;
            background-color: var(--white);
            border: 8px solid var(--clr2);
            border-radius: 20px;
            padding: 2rem .7rem 3rem;
            max-width: 150px;
            width: 100%;

            .line-top {
                width: 40px;
                height: 6px;
                background-color: var(--clr2);
                border-radius: 4px;
                position: absolute;
                top: 10px;
                left: 50%;
                transform: translateX(-50%);
            }

            .statuses .status {
                width: 100%;
                height: 6px;
                border-radius: 6px;

                &.good { background-color: #278654; }
                &.medium { background-color: #b56c1d; }
                &.bad { background-color: #b51d1d; }
            }
        }
    }

    .subcontent {
        .top .heading .title-heading .h2 {
            line-height: 40px;
        }

        .included li {
            display: flex;
            align-items: center;
            gap: .6rem;
            color: var(--clr-dark-paragraph);
            font-size: 15px;

            svg {
                width: 20px;
                height: 20px;
                fill: var(--clr1);
            }
        }
    }
}

/*
    Página de pagamento
*/
/* Cupom de desconto (página de pagamento) */
.discount-coupon {
    .title {
        font-size: 16px !important;
        font-weight: 600 !important;
        margin: 0 !important;
    }

    .field {
        #couponDiscount {
            padding: .9rem 1rem;
            border-radius: 8px;
            border: 1px solid rgba(0, 0, 0, .2);
            height: 100%;
            transition: all .2s;

            &.error { border: 2px solid var(--clr-error); }
            &.success { border: 2px solid var(--clr-success); }
        }

        #applyCoupon {
            line-height: 22px;
            margin: 0;
            height: auto;
            padding: .7rem 1rem;
            background-color: var(--white);
            border: 2px solid var(--clr2);
            transition: all .2s;

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

    #couponMessage { margin: 0; }
}

/* Total */
#total-order {
    padding: 1.2rem 1rem 1rem;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 16px;
    background-color: var(--light-grey);
    margin-bottom: 1rem;

    .items {
        border-bottom: 1px solid rgba(0, 0, 0, .2);
        padding-bottom: 1rem;
    }

    .item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;

        &.discount {
            &:not(.valid) { display: none; }

            .name, .value { color: var(--clr-success); }
        }

        .name {
            &, span {
                font-size: 13px;
                font-weight: 400;
                color: var(--clr-dark-paragraph);
            }
        }

        &.total .name, .value {
            font-size: 15px;
            font-weight: 600;
            color: var(--black);
            text-align: end;
            flex-shrink: 0;
        }
    }
}

@media (max-width: 1024px) {
    #steps .content .subcontent .top p {
        font-size: 13px;
    }

    #header .content {
        padding-top: 1rem;

        .subcontent {
            flex-direction: column-reverse;
            gap: 2.5rem;

            .texts {
                width: 100%;
                align-items: center;

                .top {
                    align-items: center;
                    gap: 1rem;

                    .title {
                        align-items: center;
                        gap: .8rem;

                        h1 {
                            font-size: 32px;
                            text-align: center;
                            line-height: 40px;
                        }

                        .paragraphs {
                            align-items: center;

                            p { text-align: center; }
                        }
                    }

                    .items {
                        width: fit-content;
                    }
                }
            }

            .form {
                width: 90%;
            }
        }
    }

    #benefits .content .items { --qtd-benefits: 2; }

    #example .content {
        flex-direction: column-reverse;
        gap: 2rem;

        .subcontent {
            width: 100%;
            align-items: center;

            .top {
                width: 100%;
                align-items: center;

                .heading {
                    align-items: center;

                    .subtitle, .h2, p { text-align: center; }
                }
            }
        }
    }

    #cta .content {
        padding: 3rem 1rem 2rem;
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;

        .subcontent {
            align-items: center;

            .subtitle, .h2 { text-align: center; }
        }
    }
}

@media (max-width: 768px) {
    #header .content {
        gap: 2.5rem;

        .subcontent {
            .form { width: 100%; }
            .texts { display: none; }
        }

        .points {
            flex-direction: column;
            width: fit-content;

            .point {
                width: 100%;

                &:not(:first-child) {
                    border-left: none;
                    border-top: 1px solid rgba(0, 0, 0, .2);
                }
            }
        }
    }

    #example .content .illustration {
        width: 100%;
    }
}

@media (max-width: 575px) {
    #steps .content .selected-data  {
        flex-direction: column;
        align-items: start;

        .consult {
            align-items: start;

            .subtitle, .consult-info {
                text-align: start;
            }
        }
    }
}

@media (max-width: 550px) {
    main#container, .sptb-sm { padding-top: 65px !important; }

    #steps .content .subcontent .top p { font-size: 12px; }

    #benefits .content .items { --qtd-benefits: 1; }

    #example .content .illustration { display: none; }
}