/* =========================================================
   RITHCABS
   CUSTOMER AUTHENTICATION
   File: assets/css/customer-auth.css
   ========================================================= */


/* =========================================================
   ROOT
   ========================================================= */

:root {

    --auth-navy: #06283D;
    --auth-navy-dark: #031E30;
    --auth-navy-soft: #0B354D;

    --auth-yellow: #FFB800;
    --auth-yellow-hover: #E8A700;
    --auth-yellow-soft: #FFF5D9;

    --auth-white: #FFFFFF;

    --auth-bg: #F7F9FB;
    --auth-bg-soft: #F2F6F8;

    --auth-text: #102A3A;
    --auth-grey: #61798C;
    --auth-grey-light: #96A5B0;

    --auth-border: #E6EDF3;

    --auth-success: #188038;
    --auth-success-bg: #EAF7EE;

    --auth-error: #D32F2F;
    --auth-error-bg: #FFF0F0;

    --auth-shadow:
        0 20px 55px rgba(6, 40, 61, 0.10);

    --auth-shadow-hover:
        0 25px 60px rgba(6, 40, 61, 0.14);

}


/* =========================================================
   PAGE
   ========================================================= */

.customer-auth-page {

    width: 100%;

    min-height: 100vh;

    color: var(--auth-text);

    background: var(--auth-bg);

    font-family: 'Inter', sans-serif;

    overflow: hidden;

}


.customer-auth-page *,
.customer-auth-page *::before,
.customer-auth-page *::after {

    box-sizing: border-box;

}


.customer-auth-page .container {

    width: min(1180px, calc(100% - 40px));

    margin: 0 auto;

}


/* =========================================================
   AUTH SECTION
   ========================================================= */

.customer-auth-section {

    position: relative;

    min-height: calc(100vh - 80px);

    display: flex;

    align-items: center;

    padding: 80px 0;

    background:
        radial-gradient(circle at 10% 15%,
            rgba(255, 184, 0, 0.09),
            transparent 25%),
        radial-gradient(circle at 90% 85%,
            rgba(6, 40, 61, 0.06),
            transparent 28%),
        var(--auth-bg);

    overflow: hidden;

}


/* =========================================================
   BACKGROUND DECORATION
   ========================================================= */

.customer-auth-section::before {

    content: "";

    position: absolute;

    top: -260px;

    left: -280px;

    width: 600px;

    height: 600px;

    border: 90px solid rgba(255, 184, 0, 0.045);

    border-radius: 50%;

    pointer-events: none;

}


.customer-auth-section::after {

    content: "";

    position: absolute;

    right: -300px;

    bottom: -300px;

    width: 650px;

    height: 650px;

    border: 100px solid rgba(6, 40, 61, 0.035);

    border-radius: 50%;

    pointer-events: none;

}


.customer-auth-section .container {

    position: relative;

    z-index: 2;

}


/* =========================================================
   MAIN WRAPPER
   ========================================================= */

.customer-auth-wrapper {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr) minmax(390px, 470px);

    align-items: center;

    gap: 85px;

}


/* =========================================================
   LEFT CONTENT
   ========================================================= */

.customer-auth-content {

    max-width: 620px;

}


/* =========================================================
   EYEBROW
   ========================================================= */

.customer-auth-eyebrow {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 20px;

    color: var(--auth-yellow-hover);

    font-size: 11px;

    font-weight: 800;

    line-height: 1.4;

    letter-spacing: 1.8px;

    text-transform: uppercase;

}


.customer-auth-eyebrow::before {

    content: "";

    width: 30px;

    height: 3px;

    flex-shrink: 0;

    background: var(--auth-yellow);

    border-radius: 100px;

}


/* =========================================================
   LEFT HEADING
   ========================================================= */

.customer-auth-content h1 {

    max-width: 620px;

    margin: 0 0 22px;

    color: var(--auth-navy);

    font-size: clamp(42px, 5vw, 62px);

    font-weight: 800;

    line-height: 1.05;

    letter-spacing: -2px;

}


.customer-auth-content h1 span {

    display: block;

    color: var(--auth-yellow);

}


/* =========================================================
   LEFT DESCRIPTION
   ========================================================= */

.customer-auth-content>p {

    max-width: 590px;

    margin: 0;

    color: var(--auth-grey);

    font-size: 16px;

    font-weight: 400;

    line-height: 1.85;

}


/* =========================================================
   FEATURES
   ========================================================= */

.customer-auth-features {

    display: flex;

    flex-direction: column;

    gap: 14px;

    max-width: 540px;

    margin-top: 38px;

}


/* =========================================================
   FEATURE ITEM
   ========================================================= */

.customer-auth-feature {

    display: flex;

    align-items: center;

    gap: 16px;

    padding: 16px 18px;

    background: rgba(255, 255, 255, 0.78);

    border: 1px solid var(--auth-border);

    border-radius: 15px;

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;

}


.customer-auth-feature:hover {

    transform: translateX(5px);

    border-color: rgba(255, 184, 0, 0.55);

    box-shadow:
        0 12px 30px rgba(6, 40, 61, 0.06);

}


/* =========================================================
   FEATURE ICON
   ========================================================= */

.customer-auth-feature-icon {

    width: 48px;

    height: 48px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

    color: var(--auth-navy);

    background: var(--auth-yellow-soft);

    border-radius: 13px;

    font-size: 19px;

}


/* =========================================================
   FEATURE TEXT
   ========================================================= */

.customer-auth-feature strong {

    display: block;

    margin-bottom: 4px;

    color: var(--auth-navy);

    font-size: 13px;

    font-weight: 800;

    line-height: 1.4;

}


.customer-auth-feature span {

    display: block;

    color: var(--auth-grey);

    font-size: 11px;

    font-weight: 500;

    line-height: 1.55;

}


/* =========================================================
   AUTH CARD
   ========================================================= */

.customer-auth-card {

    position: relative;

    width: 100%;

    padding: 42px;

    background: var(--auth-white);

    border: 1px solid var(--auth-border);

    border-radius: 26px;

    box-shadow: var(--auth-shadow);

    overflow: hidden;

}


/* =========================================================
   CARD TOP LINE
   ========================================================= */

.customer-auth-card::before {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 5px;

    background: var(--auth-yellow);

}


/* =========================================================
   CARD DECORATION
   ========================================================= */

.customer-auth-card::after {

    content: "";

    position: absolute;

    top: -100px;

    right: -100px;

    width: 220px;

    height: 220px;

    background:
        rgba(255, 184, 0, 0.055);

    border-radius: 50%;

    pointer-events: none;

}


/* =========================================================
   CARD HEADER
   ========================================================= */

.customer-auth-card-header {

    position: relative;

    z-index: 2;

    margin-bottom: 30px;

    text-align: center;

}


/* =========================================================
   CARD ICON
   ========================================================= */

.customer-auth-icon {

    width: 64px;

    height: 64px;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 18px;

    color: var(--auth-navy);

    background: var(--auth-yellow);

    border-radius: 18px;

    font-size: 26px;

    box-shadow:
        0 12px 25px rgba(255, 184, 0, 0.20);

}


/* =========================================================
   CARD LABEL
   ========================================================= */

.customer-auth-card-header>span {

    display: block;

    margin-bottom: 8px;

    color: var(--auth-yellow-hover);

    font-size: 9px;

    font-weight: 800;

    line-height: 1.4;

    letter-spacing: 1.5px;

}


/* =========================================================
   CARD TITLE
   ========================================================= */

.customer-auth-card-header h2 {

    margin: 0 0 10px;

    color: var(--auth-navy);

    font-size: 27px;

    font-weight: 800;

    line-height: 1.2;

    letter-spacing: -0.7px;

}


/* =========================================================
   CARD DESCRIPTION
   ========================================================= */

.customer-auth-card-header p {

    max-width: 330px;

    margin: 0 auto;

    color: var(--auth-grey);

    font-size: 12px;

    line-height: 1.65;

}


/* =========================================================
   FORM
   ========================================================= */

#customerLoginForm {

    position: relative;

    z-index: 2;

}


/* =========================================================
   AUTH STEP
   ========================================================= */

.customer-auth-step {

    width: 100%;

}


/* =========================================================
   FORM GROUP
   ========================================================= */

.customer-auth-form-group {

    margin-bottom: 22px;

}


/* =========================================================
   FORM LABEL
   ========================================================= */

.customer-auth-form-group label {

    display: block;

    margin-bottom: 9px;

    color: var(--auth-navy);

    font-size: 12px;

    font-weight: 700;

    line-height: 1.4;

}


.customer-auth-form-group label span {

    color: var(--auth-error);

}


/* =========================================================
   MOBILE INPUT WRAPPER
   ========================================================= */

.customer-auth-input {

    width: 100%;

    min-height: 54px;

    display: flex;

    align-items: stretch;

    background: var(--auth-white);

    border: 1px solid var(--auth-border);

    border-radius: 12px;

    overflow: hidden;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease;

}


.customer-auth-input:focus-within {

    border-color: var(--auth-yellow);

    box-shadow:
        0 0 0 3px rgba(255, 184, 0, 0.12);

}


/* =========================================================
   COUNTRY CODE
   ========================================================= */

.customer-mobile-code {

    min-width: 66px;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 0 14px;

    color: var(--auth-navy);

    background: var(--auth-bg-soft);

    border-right: 1px solid var(--auth-border);

    font-size: 13px;

    font-weight: 800;

    user-select: none;

}


/* =========================================================
   MOBILE INPUT
   ========================================================= */

.customer-auth-input input {

    width: 100%;

    min-width: 0;

    height: 52px;

    padding: 0 16px;

    color: var(--auth-text);

    background: transparent;

    border: 0;

    outline: none;

    font-family: 'Inter', sans-serif;

    font-size: 14px;

    font-weight: 600;

}


.customer-auth-input input::placeholder {

    color: var(--auth-grey-light);

    font-size: 12px;

    font-weight: 500;

}


/* =========================================================
   PRIMARY BUTTON
   ========================================================= */

.customer-auth-primary-btn {

    width: 100%;

    min-height: 54px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding: 0 22px;

    color: var(--auth-navy);

    background: var(--auth-yellow);

    border: 1px solid var(--auth-yellow);

    border-radius: 12px;

    cursor: pointer;

    font-family: 'Inter', sans-serif;

    font-size: 13px;

    font-weight: 800;

    line-height: 1;

    transition:
        transform 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;

}


.customer-auth-primary-btn:hover {

    background: var(--auth-yellow-hover);

    border-color: var(--auth-yellow-hover);

    transform: translateY(-2px);

    box-shadow:
        0 13px 28px rgba(255, 184, 0, 0.22);

}


.customer-auth-primary-btn:active {

    transform: translateY(0);

}


.customer-auth-primary-btn:disabled {

    cursor: not-allowed;

    opacity: 0.65;

    transform: none;

    box-shadow: none;

}


/* =========================================================
   BUTTON SPINNER
   ========================================================= */

.customer-auth-primary-btn .spinner-border {

    width: 16px;

    height: 16px;

    border-width: 2px;

}


/* =========================================================
   OTP SENT INFORMATION
   ========================================================= */

.customer-otp-sent-info {

    display: grid;

    grid-template-columns:
        42px 1fr auto;

    align-items: center;

    gap: 12px;

    margin-bottom: 25px;

    padding: 13px 14px;

    background: var(--auth-yellow-soft);

    border: 1px solid rgba(255, 184, 0, 0.28);

    border-radius: 12px;

}


/* =========================================================
   OTP INFO ICON
   ========================================================= */

.customer-otp-sent-info>div {

    width: 42px;

    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--auth-navy);

    background: var(--auth-yellow);

    border-radius: 11px;

    font-size: 17px;

}


/* =========================================================
   OTP INFO TEXT
   ========================================================= */

.customer-otp-sent-info p {

    margin: 0;

    color: var(--auth-grey);

    font-size: 10px;

    font-weight: 500;

    line-height: 1.5;

}


.customer-otp-sent-info p strong {

    display: block;

    margin-top: 2px;

    color: var(--auth-navy);

    font-size: 13px;

    font-weight: 800;

}


/* =========================================================
   CHANGE MOBILE BUTTON
   ========================================================= */

.customer-otp-sent-info button {

    padding: 0;

    color: var(--auth-navy);

    background: transparent;

    border: 0;

    cursor: pointer;

    font-family: 'Inter', sans-serif;

    font-size: 10px;

    font-weight: 800;

    text-decoration: underline;

    text-underline-offset: 3px;

}


.customer-otp-sent-info button:hover {

    color: var(--auth-yellow-hover);

}


/* =========================================================
   OTP INPUT CONTAINER
   ========================================================= */

.customer-otp-inputs {

    width: 100%;

    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap: 9px;

}


/* =========================================================
   OTP INPUT
   ========================================================= */

.customer-otp-input {

    width: 100%;

    min-width: 0;

    height: 55px;

    padding: 0;

    color: var(--auth-navy);

    background: var(--auth-white);

    border: 1px solid var(--auth-border);

    border-radius: 10px;

    outline: none;

    font-family: 'Inter', sans-serif;

    font-size: 21px;

    font-weight: 800;

    line-height: 1;

    text-align: center;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;

}


.customer-otp-input:focus {

    background: #FFFDF6;

    border-color: var(--auth-yellow);

    box-shadow:
        0 0 0 3px rgba(255, 184, 0, 0.12);

}


/* =========================================================
   OTP RESEND
   ========================================================= */

.customer-otp-resend {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 6px;

    margin: -3px 0 22px;

    color: var(--auth-grey);

    font-size: 10px;

    font-weight: 500;

}


/* =========================================================
   RESEND BUTTON
   ========================================================= */

.customer-otp-resend button {

    padding: 0;

    color: var(--auth-navy);

    background: transparent;

    border: 0;

    cursor: pointer;

    font-family: 'Inter', sans-serif;

    font-size: 10px;

    font-weight: 800;

}


.customer-otp-resend button:hover:not(:disabled) {

    color: var(--auth-yellow-hover);

}


.customer-otp-resend button:disabled {

    color: var(--auth-grey-light);

    cursor: not-allowed;

}


/* =========================================================
   OTP TIMER
   ========================================================= */

.customer-otp-timer {

    min-width: 38px;

    color: var(--auth-yellow-hover);

    font-size: 10px;

    font-weight: 800;

}


/* =========================================================
   RESPONSE MESSAGE
   ========================================================= */

.customer-auth-response {

    width: 100%;

    align-items: flex-start;

    gap: 10px;

    margin-top: 15px;

    padding: 13px 14px;

    border-radius: 10px;

    font-size: 11px;

    font-weight: 600;

    line-height: 1.55;

}


/* =========================================================
   RESPONSE ICON
   ========================================================= */

.customer-auth-response i {

    flex-shrink: 0;

    margin-top: 1px;

    font-size: 15px;

}


/* =========================================================
   SUCCESS RESPONSE
   ========================================================= */

.customer-auth-response-success {

    display: flex;

    color: var(--auth-success);

    background: var(--auth-success-bg);

    border: 1px solid #CDEBD6;

}


/* =========================================================
   ERROR RESPONSE
   ========================================================= */

.customer-auth-response-error {

    display: flex;

    color: var(--auth-error);

    background: var(--auth-error-bg);

    border: 1px solid #F4CCCC;

}


/* =========================================================
   AUTH BOTTOM
   ========================================================= */

.customer-auth-bottom {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 5px;

    margin-top: 26px;

    padding-top: 23px;

    border-top: 1px solid var(--auth-border);

    color: var(--auth-grey);

    font-size: 11px;

    font-weight: 500;

}


/* =========================================================
   SIGN UP LINK
   ========================================================= */

.customer-auth-bottom a {

    color: var(--auth-navy);

    font-weight: 800;

    text-decoration: none;

    transition: color 0.2s ease;

}


.customer-auth-bottom a:hover {

    color: var(--auth-yellow-hover);

}


/* =========================================================
   SECURITY
   ========================================================= */

.customer-auth-security {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 7px;

    margin-top: 17px;

    color: var(--auth-grey-light);

    font-size: 9px;

    font-weight: 600;

    line-height: 1.4;

}


/* =========================================================
   SECURITY ICON
   ========================================================= */

.customer-auth-security i {

    color: var(--auth-success);

    font-size: 11px;

}


/* =========================================================
   INPUT INVALID
   ========================================================= */

.customer-auth-input.auth-input-error {

    border-color: var(--auth-error);

    box-shadow:
        0 0 0 3px rgba(211, 47, 47, 0.08);

}


/* =========================================================
   OTP ERROR
   ========================================================= */

.customer-otp-input.auth-otp-error {

    border-color: var(--auth-error);

    background: #FFF7F7;

}


/* =========================================================
   OTP SUCCESS
   ========================================================= */

.customer-otp-input.auth-otp-success {

    border-color: var(--auth-success);

    background: #F5FFF7;

}


/* =========================================================
   RESPONSIVE - 1100
   ========================================================= */

@media (max-width: 1100px) {


    .customer-auth-wrapper {

        grid-template-columns:
            minmax(0, 1fr) minmax(370px, 440px);

        gap: 55px;

    }


    .customer-auth-content h1 {

        font-size: 50px;

    }


}


/* =========================================================
   RESPONSIVE - 992
   ========================================================= */

@media (max-width: 992px) {


    .customer-auth-section {

        padding: 70px 0;

    }


    .customer-auth-wrapper {

        grid-template-columns: 1fr;

        gap: 50px;

    }


    .customer-auth-content {

        max-width: 720px;

        margin: 0 auto;

        text-align: center;

    }


    .customer-auth-eyebrow {

        justify-content: center;

    }


    .customer-auth-content h1 {

        max-width: 700px;

        margin-left: auto;

        margin-right: auto;

    }


    .customer-auth-content>p {

        margin-left: auto;

        margin-right: auto;

    }


    .customer-auth-features {

        max-width: 650px;

        margin-left: auto;

        margin-right: auto;

        text-align: left;

    }


    .customer-auth-card {

        max-width: 480px;

        margin: 0 auto;

    }


}


/* =========================================================
   RESPONSIVE - 768
   ========================================================= */

@media (max-width: 768px) {


    .customer-auth-page .container {

        width: min(100% - 30px, 1180px);

    }


    .customer-auth-section {

        min-height: auto;

        padding: 60px 0;

    }


    .customer-auth-wrapper {

        gap: 40px;

    }


    .customer-auth-content h1 {

        font-size: 42px;

        letter-spacing: -1.3px;

    }


    .customer-auth-content>p {

        font-size: 14px;

    }


    .customer-auth-features {

        margin-top: 30px;

    }


    .customer-auth-card {

        padding: 36px;

    }


}


/* =========================================================
   RESPONSIVE - 576
   ========================================================= */

@media (max-width: 576px) {


    .customer-auth-content {

        display: none;

    }


    .customer-auth-section {

        padding: 45px 0;

    }


    .customer-auth-wrapper {

        display: block;

    }


    .customer-auth-card {

        max-width: 100%;

    }


}


/* =========================================================
   RESPONSIVE - 480
   ========================================================= */

@media (max-width: 480px) {


    .customer-auth-page .container {

        width: calc(100% - 24px);

    }


    .customer-auth-section {

        padding: 35px 0;

    }


    .customer-auth-card {

        padding: 32px 20px;

        border-radius: 21px;

    }


    .customer-auth-icon {

        width: 58px;

        height: 58px;

        margin-bottom: 16px;

        border-radius: 16px;

        font-size: 23px;

    }


    .customer-auth-card-header {

        margin-bottom: 27px;

    }


    .customer-auth-card-header h2 {

        font-size: 24px;

    }


    .customer-auth-input {

        min-height: 52px;

    }


    .customer-auth-input input {

        height: 50px;

        padding-left: 13px;

        padding-right: 13px;

        font-size: 13px;

    }


    .customer-mobile-code {

        min-width: 60px;

        padding: 0 11px;

        font-size: 12px;

    }


    .customer-auth-primary-btn {

        min-height: 52px;

    }


    /* OTP */

    .customer-otp-inputs {

        gap: 6px;

    }


    .customer-otp-input {

        height: 50px;

        border-radius: 9px;

        font-size: 19px;

    }


    .customer-otp-sent-info {

        grid-template-columns:
            38px 1fr auto;

        gap: 9px;

        padding: 11px;

    }


    .customer-otp-sent-info>div {

        width: 38px;

        height: 38px;

        font-size: 15px;

    }


}


/* =========================================================
   RESPONSIVE - 380
   ========================================================= */

@media (max-width: 380px) {


    .customer-auth-card {

        padding-left: 17px;

        padding-right: 17px;

    }


    .customer-auth-card-header h2 {

        font-size: 22px;

    }


    .customer-otp-inputs {

        gap: 5px;

    }


    .customer-otp-input {

        height: 47px;

        font-size: 17px;

    }


    .customer-otp-sent-info {

        grid-template-columns:
            36px 1fr;

    }


    .customer-otp-sent-info>div {

        width: 36px;

        height: 36px;

    }


    .customer-otp-sent-info button {

        grid-column: 2;

        width: fit-content;

    }


}


/* =========================================================
   RESPONSIVE - 340
   ========================================================= */

@media (max-width: 340px) {


    .customer-otp-inputs {

        gap: 4px;

    }


    .customer-otp-input {

        height: 44px;

        font-size: 16px;

    }


}