:root {
    --padding-y: 150px 0;
}

body {font-family: "Sofia Sans", sans-serif}

.section-welcome {position: relative; background: transparent; height: calc(100vh - 210px)}
.section-plans {position: relative; background-color: #f4f4f4; padding:var(--padding-y)}
.section-partners {position: relative; background-color: transparent; padding:var(--padding-y)}
.section-contact {position: relative; background-color: #f2f2f2; padding:var(--padding-y)}

.footer {border-top: 1px solid #f2f2f2}


.header .navbar {
   --bs-navbar-padding-y: 0
}

.logo {padding: 8px 0}

.menu small.fw-normal {
    font-size: 16px;
}

/* ### Boas-vindas ### */
.section-welcome, .section-welcome .container {
    position: relative;
}
.section-welcome:before {
    content: "";
    width: 100%;
    height:45px;
    background: linear-gradient(rgba(0, 0, 0, 0.4), transparent);
    position: absolute;
    top:0;
    left: 0;
}


.section-title {
    font:700 3.75rem "Sofia Sans Condensed", sans-serif;
    text-transform: uppercase;
    line-height: 1.1;
}

.section-description {
    font-size: 20px;
}

.btn-primary, .login-page .btn-success {
    font:700 24px "Sofia Sans Condensed", sans-serif;
    text-transform: uppercase;
}

.section-welcome .btn-primary {
    border-radius: 40px;
    padding:0.9375rem 1.875rem;
}

/* ### Cards ou blocos de planos ### */
.plan-card {
    border: 2px solid transparent;
    border-radius: 8px;
    background: #fff;
}
.plan-card ul {
    padding: 4px;
    margin: 0;
    list-style: none;
}
.plan-card ul li {
    padding: 10px;
    border-bottom: 1px solid #444;
}
.plan-card ul li:last-child {
    border-bottom:0;
}
.plan-card ul li .box i,
.plan-card ul li .box .img {
    color:#000;
    margin-right: 4px;
    flex: 0 0 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 28px;
}
.plan-card ul li .box .text {
    color:inherit;
    flex: 1;
    line-height: 1.2;
}
.plan-card .h2 {
    color:inherit;
}

.plan-card .plan-header .btn-primary {
    font-size: 28px;
}

.partners-modal h3 {
    font-weight: 700;
    margin-bottom: 0;
}

.partners-modal span {
    display: block;
    line-height: 1.2;
}
.partners-modal i img {
    max-width: 100%;
    height: auto;
}
.btn-close {
    box-sizing: content-box;
    width: 1em;
    height: 1em;
    padding: .25em .25em;
    color: #000;
    background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
    border: 0;
    border-radius: .375rem;
    opacity: .5;
}
.partners-modal .btn-danger {
    font-size: 20px;
    font-weight: bold;
}
.partners-social a {font-size: 28px}
.partners-social a .fa-facebook {color:#1877F2}
.partners-social a .fa-instagram {color:#E4405F}
.partners-social a .fa-youtube {color:#CD201F}
.partners-social a .fa-linkedin {color:#0A66C2}
.partners-social a .fa-whatsapp {color:#25D366}
.partners-social a .fa-link {color:#FF0084}
.partners-social a .fa-x-twitter {color:#000}

/*  ### Seção #03: Parceiros ### */
.partners .btn-primary {font-size: 16px}

/*  ### Seção #04: Contato ### */
.section-contact label {
    font-weight: bold;
    font-size: 18px;
}

.form-label {
    font-size: 16px;
}

/*  ### FOOTER ### */
.footer-menu ul {display: flex; flex-wrap: wrap; padding: 0; margin: 0; list-style: none; justify-content: center; align-items: center}
.footer-menu ul li {padding:5px 10px}
.footer-menu ul li a {color:inherit; font-weight: 700; text-transform: uppercase; text-decoration: none}
.footer-menu ul li a:hover {text-decoration: underline}

.footer-social {padding: 0; margin: 0; list-style: none}
.footer-social li {margin: 0 8px}
.footer-social li a {color: inherit; background-color: #f3f3f3; text-decoration: none; font-size: 28px; border-radius: 100%; width: 40px; height: 40px; display: flex; justify-content: center; align-items: center}


.bloco-address {max-width: 668px; margin: 0 auto}
.bloco-address .col-address-1 {background-color: transparent}
.bloco-address .col-address-2 {background-color: transparent}

.partners-footer ul {padding: 0; margin: 0; list-style: none; display: flex; flex-wrap: wrap; justify-content: center}
.partners-footer ul li {margin: 20px}
/*  ### fim ### */

.page_detail {padding: 120px 0}
.page_detail p, ul li, ol li {font-size: 18px}
.page_detail strong {font-weight: 800}

.alert-error {
    --bs-alert-color: #664d03;
    --bs-alert-bg: #fff3cd;
    --bs-alert-border-color: #ffecb5;
}

.errorlist {padding: 0; list-style: none}
.errorlist li {
    color: red;
    background: #ffffbc;
    padding: 2px 10px;
    border-radius: 10px;
    margin-top: 5px;
    font-size: 14px;
    text-transform: uppercase;
}

.login-page, .forgot-password-page {
    height: calc(100vh - 320px);
}
.register-page, .faq-page, .plans-page, .dashboard, .dashboard-page {
    padding: var(--padding-y);
}

.faq-page .accordion {
    --bs-accordion-active-color: #fff;
    --bs-accordion-active-bg: #333;
    --bs-accordion-btn-focus-box-shadow: none;
    border-bottom: 1px solid #cbcbcb;
}
.faq-page .accordion-button {
    font-weight: 700;
    font-size: 24px;
}
.faq-page .accordion-body p {
    color: #5b5b5b;
    font-size: 18px;
}


/* ### CADASTRO ### */
.form-register .form-check {
    padding-left: 0 !important;
}
.form-register #id_receive_emails,
.form-register #id_terms_accepted {
    width: 1.3rem;
    height: 1.3rem;
    border: 1px solid rgba(0,0,0,.25);
}

.form-register .form-check-label {
    line-height: 1.1;
    padding-left: 8px;
    position: relative;
    top:2px
}


/* ### Dashboard ### */
.dashboard-card {
    color:#000;
    background: #fff;
    border:1px solid rgb(247 247 248);
    padding: 1.5rem;
    border-radius: 0.75rem;
    min-height: 190px;
}

.dashboard-card p {
    color: #676f7e;
    line-height: 1.1;
}


.plan-details p {
    font-size: 18px;
}

.card-plan img {
    max-width: 100%;
    height: auto;
}


.list-group {border:1px solid #ddd; margin: 0; padding: 0; list-style: none; border-radius: 8px}
.list-group li {padding: 10px; border-bottom:1px solid #ddd}
.list-group li:last-child {border-bottom: 0}


.text-active p {
    font-size: 18px;
}

.form-register .form-check-input {
    margin-left: 8px;
}

.form-text {
    display: block;
    padding-left: 6px;
    line-height: 1.2;
}

/*@media (max-width: 768px) {*/
@media (max-width: 920px) {

    .logo {
        width: 100px;
    }
    .logo img {
        width: 100%;
        height: auto;
    }

    .menu small.fw-normal {
        font-size: 12px;
    }


    .plan-card, .partners {margin-bottom: 32px}

    :root {
        --padding-y: 50px
    }

    .section-title {
        font-size: 2rem;
    }
    .section-description {
        font-size: 19px;
        line-height: 1.2;
    }

    .bloco-address {
        flex-direction: column;
        text-align: center;
    }
    .bloco-address .col-address-1 {
        margin-bottom: 32px;
    }

    .dashboard-card {
        margin-bottom: 32px;
    }

    .plans-page, .register-page, .dashboard-page, .dashboard,
    .faq-page, .section-plans {
        padding-left: 0;
        padding-right: 0;
    }
    .faq-page .accordion-button {
        font-size: 20px;
    }

    .section-contact {
        padding: 50px 0 32px 0;
    }

    .plans .col-12:last-child .plan-card {margin-bottom: 0}
}


@media (max-width: 767px) {

    .plan-card ul li .box i {flex: 0 0 10%; margin-right: 10px}
    .plan-card ul li .box .text {background: transparent}


    .bloco-address .col-address-1 {margin-top: 20px}

}


@media (max-width: 370px) {
    .menu .btn-primary {
        font-size: 20px;
    }
    .menu small.fw-normal {
        font-size: 10px;
    }
}