* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

.pricing {
    padding-top: 80px;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Open Sans', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: #C9B298;
    transition: color 150ms ease-out;
}

a:hover,
a:focus {
    color: #553928;
}

.money-warning {
    color: #86a0ae;
}

button {
    border: none;
}

button:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12);
}

button[disabled] {
    background: hsl(24, 23%, 90%);
    cursor: not-allowed;
}

input {

}

input:focus,
textarea:focus {
    outline: none;
}

button,
.top-bar .button {
    padding: 0 10px;
    background: #553928;
    color: white;
    height: 40px;
    text-transform: uppercase;
    font-weight: bold;
    font-size: 14px;

    transition: background-color 150ms ease-out;
}

.top-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    height: 80px;
    flex-direction: row;
    justify-content: space-between;
    z-index: 9999;

    transition: background 150ms ease-out, box-shadow 150ms ease-out;
}

.top-bar .left,
.top-bar .right {
    padding: 0;
}

.top-bar .right {
    display: flex;
    flex-direction: row;
}

.top-bar nav {
    display: flex;
    flex-direction: row;
}

.top-bar a {
    white-space: nowrap;
    line-height: 80px;
    padding: 0 20px;
    text-transform: uppercase;
    color: #553928;
    font-weight: bold;
    text-decoration: none;
}

.top-bar .button {
    width: 180px;
    margin: 20px;
    line-height: 40px;
    text-align: center;
}

.top-bar .left img {
    height: 80px;
    padding: 20px;
}

.top-bar.fixed {
    background: #f2f2f2;
    box-shadow: 1px 1px 10px 1px rgba(0, 0, 0, 0.4);
}

.hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 80px;
    padding-left: 14%;
    padding-right: 30%;
    height: 100vh;
    width: 100%;
    background: url(/static/img/fundo-landpage.jpg) center center / cover no-repeat;
}

.hero.local {
    background: url(/static/img/intro_photo.jpg) center center / cover no-repeat;
    padding-left: 80px;
    padding-right: 80px;
    text-align: center;
    align-items: center;
}

.hero .title {
    position: relative;
}

.promotag {
    width: 280px;
    position: absolute;
    top: -140px;
    left: 0;
}

.hero .title,
.hero .sub-title,
.hero .button {
    margin: 20px;
}

.hero .title {
    margin-top: 80px;
}

.hero .title {
    font-weight: lighter;
    font-size: 48px;
}

.hero .sub-title {
    font-weight: lighter;
    font-size: 24px;
}

.header {

}

.main {
    max-width: 1200px;
    margin: 80px auto;
}

.steps {
    height: 1440px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.steps .step {
    display: flex;
    flex-direction: row;
    margin: 20px 80px;
}

.steps .step .image {
    width: 600px;
}

.steps .step img {
    display: block;
    width: 100%;
    height: auto;
}

.steps .step .image,
.steps .step .info {
    flex: 1;
}

.steps .step .info {
    padding: 40px;
    font-size: 24px;
}

.steps .step .info .title {
    text-transform: uppercase;
    color: #816450;
    font-weight: bold;
}

.cta {
    height: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: rgba(201, 178, 152, 0.2);
}

.cta .text {
    font-weight: lighter;
    font-size: 32px;
    text-align: center;
    margin: 20px auto;
}

.cta .button {
    margin: 20px auto;
    text-align: center;
}

.hero .button,
.cta .button {
    background: #553928;
    width: 260px;
    height: 58px;
    font-size: 16px;
    text-transform: uppercase;
    color: #ffffff;
    font-weight: bold;
    text-align: center;
    line-height: 58px;
    text-decoration: none;
}

.footer {
    background: #816450;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    height: 80px;
}

.footer .copyright,
.footer .powered-by {
    padding: 20px;
    line-height: 40px;
    color: #ffffff;
    margin: 0;
    font-size: 10px;
}

.footer .powered-by {
    display: flex;
    flex-direction: row;
}

.footer .powered-by img {
    padding-left: 2px;
    width: 80px;
}

.contact-form {
    padding: 60px;
}

.cta .text {
    max-width: 1200px;
    padding: 0 60px;
}

input:focus,
textarea:focus {
    outline: none;
}

input,
textarea {
    border: 2px solid #C9B298;
    padding: 8px;
    font-size: 14px;
    line-height: 36px;
    width: 100%;
}

textarea {
    height: 240px;
}

.input-field,
.checkbox-field {
    position: relative;
    margin: 5px 0 16px;
}

.input-field label,
.input-label {
    font-size: 14px;
    color: #C9B298;
    text-align: left;
    font-weight: bold;
}

.input-field label {
    position: absolute;
    left: 10px;
    top: 14px;
    font-size: 14px;

    color: #C9B298;
    transition: top 100ms ease-out, font-size 100ms ease-out;
}

.input-field input,
.input-field textarea {
    background: none;
    padding: 4px 8px;
    height: 48px;
}

textarea:not(:empty) + label,
input:not([value=""]) + label,
label {
    top: 2px;
    font-size: 10px;

    font-weight: 800;
    text-transform: uppercase;
}

label.field-name {
    padding: 8px 8px;
}

.input-row {
    display: flex;
    justify-content: center;
    margin: 10px;
}

.input-row .input-field {
    flex: 1;
    max-width: 590px;
    margin: 10px;
}

.input-field {
    margin: 20px;
}

.contact-form {
    max-width: 960px;
    margin: 20px auto;
}

form button[type="submit"] {
    width: 180px;
    height: 40px;
    line-height: 40px;
    margin-right: 20px;
    margin-left: auto;
    align-self: flex-end;
    display: flex;
    justify-content: center;
}

input.success {
    border-color: #7ab317;
}

label.success,
input.success + label,
textarea.success + label {
    color: #7ab317;
}

input.error,
textarea.error {
    border-color: #cc3440;
    color: #cc3440;
}

label.error,
input.error + label,
textarea.error + label {
    color: #cc3440;
}

.input-field span.error {
    position: absolute;
    left: 10px;
    bottom: 4px;
}

.textarea-field span.error {
    bottom: 10px;
}

span.error,
div.error {
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;

    color: #cc3440;
}

.error-message,
.success-message {
    margin: 0 auto;
    max-width: 360px;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: bold;
    line-height: 24px;
    padding: 10px;
}

form .error-message,
form .success-message {
    margin: 20px;
    display: flex;
    width: calc(100% - 40px);
    max-width: none;
}

.error-message {
    background: #F4D6D8;
    color: #cc3440;
}

.success-message {
    background: #E4EFD0;
    color: #7ab317;
}

.tooltip {
    background: #553928;
    padding: 4px 8px;
    width: 120px;
    color: #ffffff;
    position: relative;
    white-space: nowrap;
    text-align: center;
}

.tooltip:after {
    top: 100%;
    left: 50%;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border: 10px solid rgba(85, 57, 40, 0);
    border-top-color: #553928;
    margin-left: -10px;
}

.total {
    margin-top: 0;
    text-align: center;
    color: #86a0ae;
    text-transform: uppercase;
    font-size: 24px;
}

.total strong {
    font-size: 48px;
}

.total sup > small {
    font-size: 16px;
    vertical-align: top;
    position: relative;
    top: 13px;
}

.pricing-title {
    text-align: center;
    font-weight: lighter;
    font-size: 32px;
}

.form-title {
    text-align: left;
    font-weight: lighter;
    font-size: 32px;
    margin: 20px;
}

.form-subtitle {
    margin: 20px;
    text-align: left;
    font-weight: lighter;
    font-size: 24px;
}

.privacy-policy .header img {
    width: 500px;
    padding: 0 80px;
    max-width: 100%;
    margin: 80px auto 0;
    text-align: center;
}

.privacy-policy .header .left {
    display: flex;
    justify-content: center;

}

.privacy-policy .main {
    padding: 20px;
    max-width: 80ch;
}

.footer a {
    color: #ffffff;
}

.text-center {
    display: flex;
    justify-content: center;
}

.countdown {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    justify-content: center;

    min-height: 360px;
    padding: 80px;
}

.countdown .expired,
.countdown .text {
    font-size: 32px;
    font-weight: 300;
}

.countdown .time {
    display: flex;
    flex-direction: row;
    justify-content: center;

    margin: 0 auto 32px;

    font-weight: 700;
    font-size: 96px;
    color: #86a0ae;
}

.countdown .time .part {
    position: relative;

    width: 160px;
    padding-bottom: 8px;
}

.countdown .time .label {
    font-size: 24px;
    text-transform: uppercase;

    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

.features {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;

    min-height: 800px;
    max-width: 960px;
    padding: 80px 0;
    margin: 0 auto;
}

.features h3:first-of-type {
    margin-top: 64px;
}

.features h2,
.features h3,
.features .plus {
    font-weight: 700;
    color: #816450;
    text-transform: uppercase;
}

.features h3,
.features .plus {
    font-size: 20px;
    margin-top: 8px;
    margin-bottom: 0;
}

.features h2,
.features .plus {
    font-size: 48px;
    margin-bottom: 0;
}

.features p {
    font-size: 20px;
    margin: 0;
}

.prices {
    display: flex;
    flex-direction: row;
    justify-content: center;
    text-align: center;
    font-size: 20px;
    min-height: 800px;
}

.prices .price.promo {
    background: hsl(201, 20%, 40%);
    color: #ffffff;
}

.prices .price .title {
    text-transform: uppercase;
    font-weight: 700;
}

.prices .price {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    height: 640px;
    width: 320px;
    background: hsl(201, 20%, 95%);
}

.prices .price .install-price .amount {
    font-size: 48px;
    font-weight: 700;
}

.prices .price .install-price .info {
    margin-top: -8px;
}

.prices .price .usage-price .amount {
    font-size: 24px;
    font-weight: 700;
}

.prices .price .usage-price .info span,
.prices .price .install-price .info span {
    font-size: 16px;
    font-weight: bold;
}

.functionalities {
    margin: 0 auto;
    padding: 80px;
    max-width: 960px;
    font-size: 20px;
}

.functionalities h2 {
    color: #553928;
}

.functionalities ul {
    list-style: square;
}

.progress.local {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 80px;
    width: 100%;
    max-width: 960px;
}

.progress.local .info .card .triangle {
    border: solid black;
    border-width: 0 3px 3px 0;
    display: inline-block;
    padding: 3px;
    transform: rotate(-135deg);
    -webkit-transform: rotate(-135deg);
}

.progress.local .bar {
    display: flex;
    width: 100%;
    height: 16px;
    background: #816450;
    position: relative;
}

.progress.local .bar .filled {
    background: #23140e;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    transform-origin: left;

    will-change: transform;
    transform: scaleX(0);
    transition: transform 300ms ease-out;
}

.progress.local .text {
    text-align: right;
    margin-right: 0;
    padding: 0;
    text-transform: uppercase;
    font-size: 20px;
    font-weight: 800;
    color: #816450;
}

.progress.local .text .number {
    font-size: 32px;
}

@media screen and (max-width: 1080px) {
    .header nav {
        display: none;
    }
}

@media screen and (max-width: 850px) {
    .header nav {
        display: none;
    }

    .steps {
        height: auto;
        text-align: center;
    }

    .steps .step {
        text-align: center;
        margin: 20px auto;
        flex-direction: column;
        max-width: calc(100% - 160px)
    }

    .steps .step .image {
        width: auto;
    }

    .steps .step .info {
        padding-left: 0;
        text-align: left;
    }
}
.top-bar .toggle {
    will-change: transform;
    transform: translateX(100%);
    transition: transform 300ms ease-out;

    position: fixed;
    background: transparent;
    font-size: 32px;
    color: #000;
    top: 0;
    right: 0;
    z-index: 9999;

    width: 80px;
    height: 80px;
}
.top-bar .toggle:hover {
    color: #C9B298;
}
.top-bar .toggle:focus,
.top-bar .toggle:active {
    border: none;
    box-shadow: none;
    outline: none;
}

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

    .hero .sub-title,
    .form-subtitle,
    .steps .step .info .description,
    .steps .step .info .title {
        font-size: 16px;
    }

    .cta .text,
    .form-title,
    .pricing-title {
        font-size: 24px;
    }

    .top-bar .toggle {
        transform: translateX(0);
    }

    .top-bar .right {
        padding-top: 80px;
        display: flex;
        flex-direction: column;
        background: #f2f2f2;
        overflow: visible;
        height: 100vh;

        will-change: transform;
        transform: translateX(100%);
        transition: transform 300ms ease-out;
    }

    .top-bar .right.visible {
        transform: translateX(0);
    }

    .input-row {
        flex-direction: column;
        margin: 0 10px;
    }

    .input-field.textarea-field {
        margin-top: 10px;
    }

    .input-row .input-field {
        max-width: calc(100% - 20px);
    }

    .prices {
        flex-direction: column;
        align-items: center;
        align-content: center;
        margin: 80px auto;
    }

    .countdown .time {
        font-size: 64px;
    }

    .countdown .time .part {
        width: 120px;
    }

    .countdown .time .part .label {
        font-size: 20px;
    }
}

@media screen and (max-width: 500px) {
    .countdown {
        padding: 20px;
    }
    .footer {
        flex-direction: column;
        height: auto;
    }

    .footer .copyright,
    .footer .powered-by {
        line-height: 40px;
        padding: 0 20px;
    }

    .steps .step {
        display: flex;
        margin: 20px;
        width: 100%;
        max-width: calc(100% - 80px);
    }

    .main {
        margin: 20px;
    }

    .cta .text {
        padding: 0 40px;
    }

    .contact-form {
        padding: 20px;
    }

    .countdown .time {
        font-size: 48px;
    }

    .countdown .time .part {
        width: 96px;
    }

    .countdown .time .part .label {
        font-size: 16px;
    }
}

@media screen and (max-width: 400px) {
    .top-bar .left img {
        max-width: 120px;
        padding-right: 0;
        padding-left: 10px;
    }

    .top-bar .right .button {
        margin-left: 10px;
    }

    .hero,
    .hero.local {
        padding: 0;
    }

    .hero .title {
        font-size: 24px;
    }

    .hero .sub-title,
    .form-subtitle,
    .steps .step .info .description,
    .steps .step .info .title {
        font-size: 16px;
    }

    .cta .text,
    .form-title,
    .pricing-title {
        font-size: 18px;
    }

    .steps .step {
        display: flex;
        margin: 20px;
        width: 100%;
        max-width: calc(100% - 40px);
    }

    .main {
        margin: 0;
    }

    .cta .text {
        padding: 0 20px;
    }

    .contact-form {
        padding: 0;
    }

    .promotag {
        width: 280px;
        top: -120px;
    }

    .countdown .time .part {
        width: 56px;
    }

    .countdown .time .part .label {
        font-size: 10px;
    }

    .progress.local {
        padding: 0 40px;
    }

    .features {
        padding: 40px;
    }
}
