@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root{
    --white: #fff;
    --black: #ED864B; 
    --lightBulue: #eb9766;
}

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}

body{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #f2f4f7;
    /* reserve space for a fixed footer on wide screens */
    padding-bottom: 0; /* will be set in a media query for wide screens */
}

/* Branding block placed to the left of the card */
.brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* alinhamento à esquerda */
    justify-content: center;
    max-width: 400px; /* ocupa mais espaço como no Facebook */
    margin-right: 50px; /* espaço entre o brand e o card */
}

.brand img {
    display: none; /* remove a logo antiga caso não queira usar */
}

.brand .brand-logo {
    font-size: 56px; /* tamanho grande como no Facebook */
    font-weight: bold;
    color: #1877f2; /* azul padrão do Facebook */
    font-family: Arial, Helvetica, sans-serif; /* fonte semelhante */
    margin-bottom: 10px;
}

.brand .brand-text {
    font-size: 20px;
    color: #000;
    line-height: 1.4;
    max-width: 400px;
    text-align: left;
}


.brand img{
    width: 340px;
    height: auto;
    display: block;
    filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.2)); /* Soft shadow for SVG content */
}

/* Footer styles */
.site-footer{
    width: 100%;
    background: #fff;
    border-top: 1px solid #e6e9ef;
    padding: 22px 20px;
    box-sizing: border-box;
}
.site-footer .footer-inner{
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}
.site-footer .footer-brand h3{
    margin: 0 0 6px 0;
    color: var(--black);
}
.site-footer .footer-brand p{
    margin: 0;
    color: #333;
    font-size: 14px;
}
.footer-actions{
    display: flex;
    align-items: center;
    gap: 24px;
}
.footer-lang label{
    margin-right: 8px;
    font-size: 14px;
}
.footer-lang select{
    padding: 6px 8px;
    border-radius: 6px;
    border: 1px solid #cfd6df;
    background: #fff;
}
.footer-links a{
    margin-left: 12px;
    color: #444;
    text-decoration: none;
    font-size: 14px;
}

@media (max-width: 900px){
    .site-footer .footer-inner{
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .footer-actions{
        margin-top: 12px;
    }
}

/* On wide screens, keep footer fixed to bottom and prevent overlap by adding body padding */
@media (min-width: 901px){
    .site-footer{
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 40;
    }
    body{
        padding-bottom: 80px; /* reserve space for footer (height + some breathing room) */
    }
    /* keep content centered above footer */
    .site-footer .footer-inner{
        max-width: 1100px;
    }
}


.wrapper{
    position: relative;
    width: 750px;
    height: 450px;
    background: var(--white);
    border: 2px solid var(--black);
    border-radius: 10px;
    box-shadow: 0 0 20px var(--black);
    overflow: hidden;
}


.wrapper .form-box{
    position: absolute;
    top: 0;
    width: 50%;
    height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.wrapper .form-box.login{
    left: 0;
    padding: 0 60px 0 40px;
}

.form-box h2{
    margin-bottom: 10px;
    position: relative;
    font-size: 32px;
    color: var(--black);
    text-align: center;
}

.form-box h2::after{
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 4px;
    background: var(--black);
}

.form-box .input-box{
    position: relative;
    width: 100%;
    height: 50px;
    margin: 25px 0;
}

.input-box input{
    width: 100%;
    height: 100%;
    background: transparent;
    color: var(--black);
    font-size: 16px;
    font-weight: 500;
    border: none;
    outline: none;
    border-bottom: 2px solid var(--black);
    transition: .5s;
    padding-right: 23px;
}

.input-box input:focus,
.input-box input:valid{
    border-bottom-color: var(--lightBulue);
}

.input-box label{
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-size: 16px;
    color: var(--black);
    pointer-events: none;
    transition: 0.5s;
}


.input-box input:focus~label,
.input-box input:valid~label{
    top: -5px;
    color: var(--lightBulue);
}


.input-box i{
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    font-size: 18px;
    transition: 0.5s;
}

.input-box input:focus~i,
.input-box input:valid~i{
    color: var(--lightBulue);
}

form button{
    width: 100%;
    height: 45px;
    background-color: var(--black);
    color: var(--white);
    border: none;
    outline: none;
    border-radius: 40px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    transition: .3s;
}

form button:hover{
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
}

form .linkTxt{
    font-size: 14px;
    color: var(--black);
    text-align: center;
    margin: 20px 0 10px;
}

.linkTxt p a{
    color: blue;
    text-decoration: none;
    font-weight: 600;
}

.wrapper .form-box.login .animation{
    transform: translateX(0);
    transition: 0.7s ease;
    opacity: 1;
    filter: blur(0);
    transition-delay: calc(.1s * var(--j));
}


.wrapper.active .form-box.login .animation{
    transform: translateX(-120%);
    opacity: 0;
    filter: blur(10px);
    transition-delay: calc(.1s * var(--i));
}






.wrapper .info-text{
    position: absolute;
    top: 0;
    width: 50%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.wrapper .info-text.login{
    right: 0;
    text-align: right;
    padding: 0 40px 60px 150px;

}

.wrapper .info-text h2{
    font-size: 36px;
    color: var(--white);
    line-height: 1.3;
    text-transform: uppercase;
}

.wrapper .info-text p{
    font-size: 16px;
    color: var(--white);
}


.wrapper .info-text.login .animation{
    transform: translateX(0);
    opacity: 1;
    filter: blur(0);
    transition: 0.7s ease;
    transition-delay: calc(.1s * var(--j));
}
.wrapper.active .info-text.login .animation{
    transform: translateX(120px);
    opacity: 0;
    filter: blur(10px);
    transition: 0.7s ease;
    transition-delay: calc(.1s * var(--i));
}





.wrapper .rotate-bg{
    position: absolute;
    top: -4px;
    right: 0;
    width: 850px;
    height: 600px;
    background: #ED864B;
    transform: rotate(10deg) skewY(40deg);
    transform-origin: bottom right;
    transition: 1.5s ease;
    transition-delay: 1.6s;
}

.wrapper.active .rotate-bg{
    transform: rotate(0) skewY(0);
    transition-delay: 0.5s;
}











.wrapper .form-box.register{
    padding: 0 40px 0 60px;
    right: 0;
}

.wrapper.active .form-box.register{
    pointer-events: auto;
}

/* --- register-step: manter todos os steps na mesma área e mostrar apenas o ativo --- */
.wrapper .form-box.register .register-step{
    display: none; /* escondido por padrão */
    width: 100%;
    box-sizing: border-box;
    padding-top: 12px; /* espaço abaixo do título */
}

.wrapper .form-box.register .register-step.active{
    display: block;
    animation: fadeIn .28s ease;
}

@keyframes fadeIn{
    from{ opacity: 0; transform: translateY(6px); }
    to{ opacity: 1; transform: translateY(0); }
}

/* link permanente "Já tem uma conta? Entrar" dentro do register box */
.wrapper .form-box.register .register-always-link{
    width: 100%;
    box-sizing: border-box;
    margin-top: 6px;
}
.wrapper .form-box.register .register-always-link p{
    margin: 0;
    font-size: 14px;
    color: var(--black);
}
.wrapper .form-box.register .register-always-link a{
    color: blue;
    text-decoration: none;
    font-weight: 600;
}


.wrapper .form-box.register .animation{
    transform: translateX(120%);
    opacity: 0;
    filter: blur(10px);
    transition: .7s ease;
    transition-delay: calc(.1s * var(--j));
}

.wrapper.active .form-box.register .animation{
    transform: translateX(0);
    opacity: 1;
    filter: blur(0);
    transition-delay: calc(.1s * var(--i));
}



.wrapper .info-text.register{
    left: 0;
    text-align: left;
    padding: 0 150px 60px 40px;
    pointer-events: none;
}

.wrapper.active .info-text.register{
    pointer-events: auto;
}


.wrapper .info-text.register .animation{
    transform: translateX(-120%);
    opacity: 0;
    filter: blur(10px);
    transition: .7s ease;
    transition-delay: calc(.1s * var(--j));
}

.wrapper.active .info-text.register .animation{
    transform: translateX(0);
    opacity: 1;
    filter: blur(0);
    transition-delay: calc(.1s * var(--i));
}




.wrapper .rotate-bg2{
    position: absolute;
    top: 100%;
    left: 250px;
    width: 850px;
    height: 700px;
    background: var(--white);
    transform: rotate(0) skewY(0);
    transform-origin: bottom left;
    transition: 1.5s ease;
    transition-delay: 0.5s;
}

.wrapper.active .rotate-bg2{
    transform: rotate(-11deg) skewY(-40deg);
    transition-delay: 1.2s;
}


/* Responsive rules: keep .wrapper internals untouched; use scaling and width adjustments so animations continue to work */
@media (max-width: 1100px){
    .brand{
        max-width: 320px;
        margin-right: 30px;
    }
    .brand .brand-text{
        font-size: 18px;
    }
    .brand img{
        width: 140px;
    }
    /* slightly reduce card to fit narrower desktops/laptops */
    .wrapper{
        transform: scale(0.95);
        transform-origin: center center;
    }
}

@media (max-width: 900px){
    /* stack brand above the card on tablets and small laptops */
    body{
        flex-direction: column;
        padding: 30px 0;
    }
    .brand{
        margin-right: 0;
        margin-bottom: 20px;
        align-items: center;
        text-align: center;
        width: 100%;
        max-width: 720px;
    }
    .brand .brand-text{
        font-size: 16px;
        max-width: 680px;
    }
    .brand img{
        width: 150px;
    }
    /* visually reduce the wrapper without changing its internals */
    .wrapper{
        width: 92%;
        max-width: 750px;
        transform: scale(0.92);
        transform-origin: top center;
    }
}

@media (max-width: 600px){
    /* mobile: make brand compact and scale down the whole card so animations still behave as expected */
    .brand{
        margin-bottom: 14px;
    }
    .brand img{
        width: 120px;
    }
    .brand .brand-text{
        font-size: 14px;
        max-width: 300px;
        margin: 0 auto;
    }
    .wrapper{
        width: 94%;
        transform: scale(0.82);
        transform-origin: top center;
    }
}

@media (max-width: 420px){
    /* very small phones: a bit more scaling */
    .brand img{
        width: 100px;
    }
    .brand .brand-text{
        font-size: 13px;
        max-width: 260px;
    }
    .wrapper{
        width: 98%;
        transform: scale(0.74);
        transform-origin: top center;
    }
}