/* Wrapper for the entire login page */
.login-wrapper {
    font-weight: 400;
    max-width: 1142px;
    min-height: 500px;
    margin: 0 auto;
    background: #fff;
    border-radius: 16px;
    padding-left: 32px;
    padding-right: 32px;
    gap: 64px;
    margin: 35px auto;
}

.invset-login-wrapper {
    font-weight: 400;
    max-width: 640px;
    min-height: 500px;
    margin: 0 auto;
    background: #fff;
    border-radius: 16px;
    padding-left: 32px;
    padding-right: 32px;
    gap: 64px;
    margin: 35px auto;
}

/* Inner content with two columns */
.login-content {
    display: flex;
    gap: 32px;
}

/* Left column (form) */
.login-form-col {
    width: 580px;
    min-height: 500px;
    padding: 64px 64px 32px 64px; /* Top: 64px, Right: 64px, Bottom: 32px, Left: 64px */
}

/* Right column (image) */
.login-image-col {
    width: 434px;
    height: 360.58px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 250px;
}

.login-graphic {
    width: 434px;
    height: 360.58px;
}

/* Adjust the login-container from form_login partial */
.login-container {
    max-width: 100%; /* Fit within the left column */
    margin-top: 5; /* Remove margin since the wrapper handles centering */
    padding: 0; /* Remove padding since the form column handles it */
    background: none; /* Remove background since the wrapper has it */
    border-radius: 0; /* Remove border-radius since the wrapper has it */
    box-shadow: none; /* Remove shadow since the wrapper has it */
}

.login-message {
    text-align: start;
    font-size: 15.7px;
    color: #191919;
    margin-bottom: 20px;
}

.social-login-label {
    text-align: start;
    font-weight: bold;
    font-size: 24px;
    margin-bottom: 10px;
    color: #191919;
}

.separator {
    text-align: start;
    margin: 20px 0;
    position: relative;
}

.separator span {
    background: #fff;
    font-size: 24px;
    font-weight: bold;
    color: #191919;
}

.separator:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-top: 1px solid #ddd;
    z-index: -1;
}

.input-label {
    display: block;
    font-size: 16px;
    color: #72777a;
    margin-bottom: 8px;
    font-weight: normal;
}

.custom-input {
    width: 452px;
    height: 48px;
    border-radius: 16px; /* Override Bootstrap's border */
    border: none; /* Remove the border */
    background-color: #f2f4f5;
    padding: 10px 16px;
    font-size: 16px;
    box-shadow: none; /* Remove any box-shadow */
    outline: none; /* Remove any outline */
}

/* Override Bootstrap's form-control styles */
.custom-input.form-control {
    border: none !important; /* Override Bootstrap's border */
    box-shadow: none !important; /* Override Bootstrap's box-shadow */
}

.password-group {
    position: relative;
}

.toggle-password {
    position: absolute;
    inset-inline-end: 12px;
    top: 67%;
    transform: translateY(-38%);
    cursor: pointer;
    color: #191919;
}

.eye-icon {
    width: 20px;
    height: 20px;
}

.login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.custom-checkbox {
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
}

/* Hide the default checkbox */
.custom-checkbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.checkmark {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1px solid #6d4916;
    border-radius: 4px;
    background-color: transparent;
    position: relative;
    margin-inline-end: 8px; /* Gap between checkbox and label */
}

.custom-checkbox input:checked ~ .checkmark {
    background-color: #6d4916;
    border: none;
}

.custom-checkbox input:checked ~ .checkmark::after {
    content: "";
    position: absolute;
    inset-inline-start: 5px;
    top: 1px;
    width: 6px;
    height: 11px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.checkbox-label {
    display: block;
    font-size: 16px;
    color: #72777a;
    margin-bottom: 0px;
    font-weight: normal;
}

.forgot-password,
.forgot-password a {
    font-size: 16px;
    font-weight: bold;
    color: #6d4916;
}

.forgot-password:hover,
.forgot-password a:hover,
.forgot-password a:active,
.forgot-password a:focus {
    font-size: 16px;
    font-weight: bold;
    color: #462f0e;
    text-decoration: none;
}

.btn-login {
    background-color: #fce295;
    color: #191919;
    border: none;
    font-weight: bold;
    font-size: 18px;
    height: 48px;
    border-radius: 16px;
    transition: background-color 0.3s ease;
}

.btn-login:hover {
    background-color: #fddc7b;
}

.new-user {
    font-size: 16px;
}

.create-account,
a.create-account {
    font-size: 16px;
    font-weight: bold;
    color: #6d4916;
}

.create-account:hover,
a:hover.create-account,
a:active.create-account,
a:focus.create-account {
    font-size: 16px;
    font-weight: bold;
    color: #462f0e;
    text-decoration: none;
}

/* Responsive adjustments for mobile screens (max-width: 767px) */
@media (max-width: 767px) {
    /* Wrapper for the entire login page */
    .login-wrapper {
        max-width: 397px;
        min-height: 500px;
        border-radius: 8px;
        padding: 16px 32px 16px 32px; /* Top: 16px, Right: 32px, Bottom: 16px, Left: 32px */
        margin: 16px auto;
        gap: 32px;
    }

    .invset-login-wrapper {
        max-width: 397px;
        min-height: 500px;
        border-radius: 8px;
        padding: 24px 32px 16px 32px; /* Top: 16px, Right: 32px, Bottom: 16px, Left: 32px */
        margin: 16px auto;
        gap: 32px;
    }

    /* Inner content: stack vertically */
    .login-content {
        flex-direction: column;
        gap: 32px;
    }

    /* Form column: full width, adjust padding */
    .login-form-col {
        width: 100%;
        height: auto;
        padding: 0;
        order: 1; /* Place form after image on mobile */
    }

    /* Image column: full width, centered */
    .login-image-col {
        width: 100%;
        height: auto;
        padding-top: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        order: 0; /* Place image before form on mobile */
    }

    /* Graphic: adjust size */
    .login-graphic {
        width: 247.84px;
        height: 205.91px;
    }

    /* Form container: adjust width */
    .login-container {
        max-width: 100%;
        margin-top: 0;
    }

    /* Form inputs: full width */
    .custom-input {
        width: 100%;
    }

    /* Login button: full width */
    .btn-login {
        width: 100%;
    }

    /* Separator: adjust margin */
    .separator {
        margin: 16px 0;
    }

    /* Login options: stack vertically on very small screens */
    .login-options {
        flex-direction: row;
        justify-content: space-between;
    }

    /* Adjust font sizes for smaller screens */
    .social-login-label,
    .separator span {
        font-size: 20px;
    }

    .forgot-password {
        font-size: 14px;
        font-weight: bold;
        color: #6d4916;
    }

    .forgot-password:hover {
        font-size: 14px;
        font-weight: bold;
        color: #462f0e;
    }

    .input-label,
    .checkbox-label,
    .new-user {
        font-size: 14px;
    }

    .create-account {
        font-size: 14px;
        font-weight: bold;
        color: #6d4916;
    }

    .create-account:hover {
        font-size: 14px;
        font-weight: bold;
        color: #462f0e;
    }

    .btn-login {
        font-size: 16px;
    }
}

@media (max-width: 390px) {
    .login-wrapper {
        max-width: 95%;
        padding: 24px 8px 16px 8px;
    }

    .invset-login-wrapper {
        max-width: 95%;
        padding: 24px 8px 16px 8px;
    }
}
