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

    :root {
        --wrap-width: 100%;
        --login-area-height: auto;
    }

    .loginContent {
        width: 100%;
        height: auto;
    }

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

    .loginsubarea {
        height: auto;
        position: static;
    }

    .loginsubareaWithAma {
        margin: 0;
        width: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 12px 0;
    }

    .camposLogin {
        float: none;
        text-align: center;
        width: auto;
        height: auto;
        margin-top: 12px;
    }

    .loginInLbl {
        text-align: left;
    }

    .lglbl {
        text-align: left;
        font-size: 0.85em !important;
    }

    .lgtxttxFocus,
    .lgtxttxFocus:focus {
        width: 140px !important;
        height: 28px;
        font-size: 16px;
        line-height: 28px;
    }

    .passTxt {
        width: 140px !important;
        height: 28px;
        font-size: 16px;
        line-height: 28px;
    }

    .VirtualKbd_Left {
        display: none;
    }

    .tecladoVirt {
        float: none;
        margin-top: 12px;
        height: auto;
    }

    .tecladoVirtWithAma {
        float: none;
        margin: 12px 0 0;
    }

    .VirtualKbd_background {
        float: none;
        background-image: none;
        width: auto;
        height: auto;
        background-color: #f0f1f3;
        border: 1px solid var(--color-kbd-border);
        border-radius: 4px;
        padding: 12px;
    }

    .VirtualKbd_teclas {
        float: none;
        margin: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 6px;
    }

    .VirtualKbd_col1 {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 6px;
        width: auto;
        height: auto;
    }

    .VirtualKbd_tecla {
        width: 48px;
        height: 44px;
        margin: 0;
    }

    .VirtualKbd_Button {
        width: 100%;
        height: 100%;
        font-size: 18px;
        line-height: 42px;
        box-sizing: border-box;
    }

    .VirtualKbd_col2 {
        display: flex;
        gap: 6px;
        margin: 0;
        width: 100%;
        height: auto;
    }

    .VirtualKbd_Delete_tecla {
        flex: 1;
        height: 44px;
        margin: 0;
    }

    .VirtualKbd_Delete {
        width: 100%;
        height: 100%;
        font-size: 14px;
        line-height: 42px;
        box-sizing: border-box;
    }

    .VirtualKbd_Enter_tecla {
        flex: 1;
        margin: 0;
        float: none;
    }

    .VirtualKbd_Enter {
        width: 100%;
        height: 44px;
        line-height: 42px;
        font-size: 14px;
    }

    .VirtualKbd_Contrast {
        float: none;
        margin: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 6px;
    }

    .contrasteMenos,
    .contrasteMais,
    .contrasteTexto {
        float: none;
        margin: 0;
    }

    .amaLogo {
        float: none;
        text-align: center;
        width: auto;
        margin-top: 16px;
        margin-bottom: 12px;
    }

    #stage2Panel {
        width: 100%;
        float: none;
        padding: 16px;
        box-sizing: border-box;
    }

    .otp-welcome {
        font-size: 14px;
    }

    .otp-title {
        font-size: 18px;
        margin-top: 8px;
    }

    .otp-instruction {
        font-size: 14px;
    }

    .otp-icon-area {
        flex-direction: column;
        align-items: center;
        gap: 16px;
    }

    .otp-input-row {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 6px;
    }

    .otp-label {
        font-size: 14px;
        white-space: normal;
        text-align: center;
    }

    .otp-input {
        width: 100%;
        height: 36px;
        font-size: 18px;
        box-sizing: border-box;
        text-align: center;
        letter-spacing: 4px;
    }

    .otp-resend {
        font-size: 13px;
    }

    .otp-validar-row {
        text-align: center;
        margin-top: 16px;
    }

    .otp-submit-btn {
        width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    .otp-wait-msg {
        font-size: 13px;
        display: block;
        text-align: center;
    }

    #stage3Panel {
        width: 100%;
        float: none;
        padding: 16px;
        box-sizing: border-box;
    }

    .payment-label {
        width: 100px;
    }

    .cancel-btn {
        width: 100%;
        padding: 12px;
        font-size: 14px;
    }

    #stage4Panel {
        width: 100%;
        float: none;
        padding: 16px;
        box-sizing: border-box;
    }

    .confirmation-msg {
        font-size: 14px;
    }

    .confirmation-countdown {
        font-size: 13px;
    }

    #confirmContinueBtn {
        width: 100%;
        padding: 12px;
        font-size: 16px;
    }

    #contentarea {
        float: none;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
        padding: 6px;
        box-sizing: border-box;
    }

    .lgitems {
        float: none;
        width: auto;
        margin-right: 0;
    }

    .lgitems img {
        width: 100%;
        height: auto;
    }

    #footer {
        float: none;
    }

    #footer div.container {
        width: auto;
        margin: 0 16px;
    }

    #footer div.footernotes {
        width: auto;
        margin: 0 16px;
        font-size: 12px;
    }
}
