/* =========================================================
   SPL LEKHABOOKS
   LOGIN PAGE RESPONSIVE STYLES

   IMPORTANT:
   This file only changes layout/sizing.
   UI design, colors and components remain unchanged.
========================================================= */


/* =========================================================
   LARGE DESKTOP
   1401px+
========================================================= */

@media (min-width: 1401px) {

    .landing-wrapper .container {

        width: min(1280px, 92%);

    }

    .hero-grid {

        grid-template-columns:
            minmax(0, 1.15fr)
            minmax(0, 0.85fr);

        gap: 70px;

    }

}


/* =========================================================
   DESKTOP
   1201px - 1400px
========================================================= */

@media (max-width: 1400px) {

    .landing-wrapper .container {

        width: 94%;

    }

    .hero-grid {

        gap: 55px;

    }

    .hero-left h1 {

        font-size: 58px;

    }

}


/* =========================================================
   SMALL DESKTOP
   1101px - 1200px
========================================================= */

@media (max-width: 1200px) {

    .hero-grid {

        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(0, 0.95fr);

        gap: 40px;

    }

    .hero-left h1 {

        font-size: 52px;

    }

    .hero-left p {

        font-size: 16px;

        max-width: 620px;

    }

    .login-card {

        max-width: 440px;

        padding: 34px;

    }

    .hero-stats {

        gap: 10px;

    }

    .hero-stats div {

        padding: 17px;

    }

    .dashboard-grid {

        gap: 18px;

    }

    .features-grid {

        gap: 20px;

    }

}


/* =========================================================
   TABLET / SMALL LAPTOP
   1100px
========================================================= */

@media (max-width: 1100px) {

    /*
       At this width the two-column layout starts
       becoming crowded.

       We therefore stack the hero.
    */
    .top-navbar {

        position: relative;

        padding: 18px 0;

        background: linear-gradient(
                135deg,
                var(--login-primary-dark),
                var(--login-primary)
        );

    }


    .navbar-inner {

        flex-direction: column;

        justify-content: center;

        gap: 16px;

    }


    .brand {

        justify-content: center;

    }


    .top-navbar nav {

        justify-content: center;

        width: 100%;

    }


    .hero-section {

        min-height: auto;

        padding: 70px 0;

    }


    .hero-grid {

        grid-template-columns: 1fr;

        gap: 55px;

    }


    .hero-left {

        display: flex;

        flex-direction: column;

        align-items: center;

        text-align: center;

    }


    .hero-left h1 {

        max-width: 850px;

        font-size: 50px;

    }


    .hero-left p {

        max-width: 720px;

        margin-left: auto;

        margin-right: auto;

    }


    .hero-buttons {

        justify-content: center;

    }


    .hero-stats {

        width: 100%;

        max-width: 800px;

    }


    .hero-right {

        justify-content: center;

        align-items: flex-start;

    }


    .login-card {

        max-width: 550px;

        margin-left: auto;

        margin-right: auto;

    }


    .dashboard-grid {

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

    }


    .features-grid {

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

    }


    .footer-content {

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

    }

}


/* =========================================================
   TABLET
   992px
========================================================= */

@media (max-width: 992px) {

    .hero-section {

        padding: 65px 0;

    }


    .hero-left h1 {

        font-size: 46px;

    }


    .hero-left p {

        font-size: 16px;

    }


    .login-card {

        max-width: 540px;

    }


    .dashboard-preview {

        margin: 55px 0;

    }


    .features-section {

        padding: 80px 0;

    }

}


/* =========================================================
   MOBILE / TABLET
   768px
========================================================= */

@media (max-width: 768px) {

    /* =====================================================
       CONTAINER
    ===================================================== */
    .landing-wrapper .container {

        width: 92%;

    }


    /* =====================================================
       NAVBAR
    ===================================================== */
    .top-navbar {

        position: relative;

        padding: 14px 0;

    }


    .navbar-inner {

        gap: 14px;

    }


    .brand {

        width: 100%;

        justify-content: center;

        gap: 10px;

    }


    .brand img {

        width: 48px;

        height: 48px;

        flex: 0 0 48px;

        padding: 5px;

    }


    .brand h3 {

        font-size: 19px;

    }


    .brand span {

        display: none;

    }


    .top-navbar nav {

        width: 100%;

        justify-content: center;

        gap: 5px;

    }


    .top-navbar nav a {

        min-height: 40px;

        padding: 8px 11px;

        font-size: 12px;

    }


    .login-btn {

        margin-left: 0;

    }


    /* =====================================================
       HERO
    ===================================================== */
    .hero-section {

        min-height: auto;

        padding: 55px 0 50px;

    }


    .hero-grid {

        grid-template-columns: 1fr;

        gap: 38px;

    }


    .hero-left {

        width: 100%;

        text-align: center;

    }


    .badge-cloud {

        max-width: 100%;

        font-size: 12px;

        padding: 8px 13px;

    }


    .hero-left h1 {

        max-width: 100%;

        margin-top: 20px;

        font-size: 40px;

        line-height: 1.15;

        letter-spacing: -0.8px;

    }


    .hero-left p {

        max-width: 650px;

        margin-top: 18px;

        font-size: 15px;

        line-height: 1.7;

    }


    /* =====================================================
       BUTTONS
    ===================================================== */
    .hero-buttons {

        width: 100%;

        flex-direction: column;

        align-items: stretch;

        gap: 12px;

        margin-top: 28px;

    }


    .btn-primary-custom,
    .btn-secondary-custom {

        width: 100%;

        min-height: 52px;

        justify-content: center;

    }


    /* =====================================================
       STATS
    ===================================================== */
    .hero-stats {

        width: 100%;

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

        gap: 8px;

        margin-top: 32px;

    }


    .hero-stats div {

        padding: 15px 8px;

        text-align: center;

    }


    .hero-stats h2 {

        font-size: 24px;

    }


    .hero-stats span {

        font-size: 11px;

    }


    /* =====================================================
       LOGIN
    ===================================================== */
    .hero-right {

        width: 100%;

        display: flex;

        justify-content: center;

    }


    .login-card {

        width: 100%;

        max-width: 540px;

        margin: 0 auto;

        padding: 30px 24px;

    }


    .login-icon {

        width: 62px;

        height: 62px;

        font-size: 26px;

        margin-bottom: 17px;

    }


    .login-header {

        margin-bottom: 24px;

    }


    .login-header h2 {

        font-size: 28px;

    }


    .login-header p {

        font-size: 13px;

    }


    .input-box {

        height: 54px;

    }


    .login-button {

        height: 54px;

    }


    /* =====================================================
       QUICK INFO
    ===================================================== */
    .quick-info {

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

    }


    /* =====================================================
       DASHBOARD
    ===================================================== */
    .dashboard-preview {

        margin: 45px 0;

    }


    .dashboard-window {

        border-radius: 20px;

    }


    .window-header {

        height: 56px;

        padding: 0 18px;

    }


    .window-header h5 {

        font-size: 13px;

    }


    .dashboard-grid {

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

        gap: 15px;

        padding: 20px;

    }


    .dashboard-card {

        min-height: 150px;

        padding: 19px;

    }


    .dashboard-card i {

        width: 48px;

        height: 48px;

        margin-bottom: 14px;

        font-size: 21px;

    }


    .dashboard-card h3 {

        font-size: 25px;

    }


    .dashboard-card p {

        font-size: 13px;

    }


    /* =====================================================
       FEATURES
    ===================================================== */
    .features-section {

        padding: 65px 0;

    }


    .section-title {

        margin-bottom: 40px;

    }


    .section-title h2 {

        font-size: 34px;

    }


    .section-title p {

        font-size: 15px;

    }


    .features-grid {

        grid-template-columns: 1fr;

        gap: 18px;

    }


    .feature-card {

        padding: 28px 22px;

    }


    /* =====================================================
       FOOTER
    ===================================================== */
    .footer {

        padding: 50px 0 20px;

    }


    .footer-content {

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

        gap: 28px;

    }


    /* =====================================================
       BACK TO TOP
    ===================================================== */
    .back-to-top {

        width: 48px;

        height: 48px;

        right: 20px;

        bottom: 20px;

        font-size: 19px;

    }

}


/* =========================================================
   MOBILE
   576px
========================================================= */

@media (max-width: 576px) {

    .landing-wrapper .container {

        width: 92%;

    }


    /* =====================================================
       NAVBAR
    ===================================================== */
    .top-navbar {

        padding: 12px 0;

    }


    .brand img {

        width: 44px;

        height: 44px;

        flex-basis: 44px;

    }


    .brand h3 {

        font-size: 17px;

    }


    .top-navbar nav {

        gap: 4px;

    }


    .top-navbar nav a {

        min-height: 37px;

        padding: 7px 9px;

        font-size: 11px;

    }


    /* =====================================================
       HERO
    ===================================================== */
    .hero-section {

        padding: 45px 0;

    }


    .hero-grid {

        gap: 32px;

    }


    .badge-cloud {

        font-size: 11px;

        padding: 7px 11px;

    }


    .hero-left h1 {

        font-size: 34px;

        line-height: 1.15;

    }


    .hero-left p {

        font-size: 14px;

        line-height: 1.7;

    }


    /* =====================================================
       STATS
    ===================================================== */
    .hero-stats {

        grid-template-columns: 1fr;

        max-width: 400px;

        margin-left: auto;

        margin-right: auto;

        gap: 8px;

    }


    .hero-stats div {

        padding: 14px;

    }


    .hero-stats h2 {

        font-size: 25px;

    }


    .hero-stats span {

        font-size: 12px;

    }


    /* =====================================================
       LOGIN CARD
    ===================================================== */
    .login-card {

        max-width: 100%;

        padding: 26px 18px;

        border-radius: 18px;

    }


    .login-icon {

        width: 58px;

        height: 58px;

        font-size: 24px;

    }


    .login-header h2 {

        font-size: 26px;

    }


    .login-header p {

        font-size: 12.5px;

    }


    .form-group {

        margin-bottom: 18px;

    }


    .form-group label {

        font-size: 12px;

    }


    .input-box {

        height: 53px;

        border-radius: 12px;

    }


    .input-box > i {

        flex: 0 0 45px;

        width: 45px;

    }


    .input-box input {

        font-size: 13px;

    }


    #togglePassword {

        width: 38px;

        height: 38px;

    }


    .login-options {

        flex-wrap: wrap;

        gap: 10px;

        margin-bottom: 22px;

    }


    .login-options label,
    .login-options a {

        font-size: 12px;

    }


    .login-button {

        height: 53px;

        font-size: 14px;

    }


    /* =====================================================
       QUICK INFO
    ===================================================== */
    .quick-info {

        grid-template-columns: 1fr;

        gap: 8px;

    }


    .quick-info span {

        min-height: 40px;

        font-size: 11px;

    }


    /* =====================================================
       DASHBOARD
    ===================================================== */
    .dashboard-preview {

        margin: 35px 0;

    }


    .dashboard-window {

        border-radius: 17px;

    }


    .window-header {

        height: 52px;

        padding: 0 15px;

    }


    .window-header h5 {

        display: none;

    }


    .window-header span {

        width: 9px;

        height: 9px;

        margin-right: 6px;

    }


    .dashboard-grid {

        grid-template-columns: 1fr;

        gap: 12px;

        padding: 15px;

    }


    .dashboard-card {

        min-height: 135px;

        padding: 18px;

    }


    .dashboard-card i {

        width: 45px;

        height: 45px;

        margin-bottom: 12px;

        font-size: 20px;

    }


    .dashboard-card h3 {

        font-size: 24px;

    }


    .dashboard-card p {

        font-size: 12px;

    }


    /* =====================================================
       FEATURES
    ===================================================== */
    .features-section {

        padding: 55px 0;

    }


    .section-title {

        margin-bottom: 35px;

    }


    .section-title small {

        font-size: 11px;

    }


    .section-title h2 {

        font-size: 29px;

    }


    .section-title p {

        font-size: 14px;

    }


    .feature-card {

        padding: 25px 20px;

        border-radius: 17px;

    }


    .feature-card i {

        width: 56px;

        height: 56px;

        font-size: 23px;

        margin-bottom: 20px;

    }


    .feature-card h4 {

        font-size: 19px;

    }


    .feature-card p {

        font-size: 13px;

    }


    /* =====================================================
       FOOTER
    ===================================================== */
    .footer {

        padding: 45px 0 20px;

    }


    .footer-content {

        grid-template-columns: 1fr;

        text-align: center;

        gap: 25px;

    }


    .footer-content h3 {

        font-size: 22px;

    }


    .footer-content h5 {

        font-size: 16px;

    }


    .footer-content p,
    .footer a {

        font-size: 13px;

    }


    .footer hr {

        margin: 32px 0 18px;

    }


    .copyright {

        font-size: 11px;

        line-height: 1.6;

    }


    .back-to-top {

        width: 46px;

        height: 46px;

        right: 16px;

        bottom: 16px;

    }

}


/* =========================================================
   SMALL PHONE
   400px
========================================================= */

@media (max-width: 400px) {

    .landing-wrapper .container {

        width: 94%;

    }


    /* =====================================================
       NAVBAR
    ===================================================== */
    .brand {

        gap: 8px;

    }


    .brand img {

        width: 40px;

        height: 40px;

        flex-basis: 40px;

    }


    .brand h3 {

        font-size: 15px;

    }


    .top-navbar nav {

        gap: 2px;

    }


    .top-navbar nav a {

        min-height: 35px;

        padding: 6px 7px;

        font-size: 10px;

    }


    /* =====================================================
       HERO
    ===================================================== */
    .hero-section {

        padding: 40px 0;

    }


    .hero-left h1 {

        font-size: 30px;

        letter-spacing: -0.5px;

    }


    .hero-left p {

        font-size: 13px;

    }


    .badge-cloud {

        font-size: 10px;

    }


    /* =====================================================
       LOGIN
    ===================================================== */
    .login-card {

        padding: 20px 14px;

    }


    .login-header h2 {

        font-size: 23px;

    }


    .login-header p {

        font-size: 12px;

    }


    .input-box {

        height: 51px;

    }


    .input-box input {

        font-size: 12px;

    }


    .login-options label,
    .login-options a {

        font-size: 11px;

    }


    .login-button {

        height: 51px;

        font-size: 13px;

    }


    /* =====================================================
       DASHBOARD
    ===================================================== */
    .dashboard-grid {

        padding: 12px;

    }


    .dashboard-card {

        min-height: 125px;

        padding: 16px;

    }


    .dashboard-card h3 {

        font-size: 22px;

    }


    /* =====================================================
       FEATURES
    ===================================================== */
    .section-title h2 {

        font-size: 27px;

    }


    .section-title p {

        font-size: 13px;

    }


    .feature-card {

        padding: 23px 18px;

    }

}


/* =========================================================
   VERY SMALL PHONE
   360px
========================================================= */

@media (max-width: 360px) {

    .landing-wrapper .container {

        width: 94%;

    }


    .brand h3 {

        font-size: 14px;

    }


    .top-navbar nav {

        gap: 1px;

    }


    .top-navbar nav a {

        padding: 5px 6px;

        font-size: 9px;

    }


    .hero-left h1 {

        font-size: 27px;

    }


    .hero-left p {

        font-size: 12px;

    }


    .login-card {

        padding: 20px 12px;

    }


    .login-icon {

        width: 54px;

        height: 54px;

        font-size: 21px;

    }


    .login-header h2 {

        font-size: 21px;

    }


    .login-header p {

        font-size: 11px;

    }


    .form-group label {

        font-size: 11px;

    }


    .login-options label,
    .login-options a {

        font-size: 10px;

    }


    .login-button {

        font-size: 12px;

    }


    .quick-info span {

        font-size: 10px;

    }


    .dashboard-card {

        min-height: 115px;

        padding: 14px;

    }


    .dashboard-card i {

        width: 42px;

        height: 42px;

        font-size: 18px;

    }


    .dashboard-card h3 {

        font-size: 20px;

    }


    .dashboard-card p {

        font-size: 11px;

    }


    .section-title h2 {

        font-size: 25px;

    }


    .feature-card h4 {

        font-size: 18px;

    }


    .feature-card p {

        font-size: 12px;

    }

}


/* =========================================================
   LANDSCAPE MOBILE
========================================================= */

@media (max-height: 600px) and (orientation: landscape) {

    .top-navbar {

        position: relative;

    }


    .hero-section {

        min-height: auto;

        padding: 45px 0;

    }


    .hero-grid {

        gap: 35px;

    }


    .hero-left h1 {

        font-size: 36px;

    }


    .hero-left p {

        font-size: 14px;

    }


    .hero-stats {

        margin-top: 25px;

    }


    .login-card {

        padding: 24px;

    }


    .login-icon {

        width: 55px;

        height: 55px;

        margin-bottom: 12px;

    }


    .login-header {

        margin-bottom: 18px;

    }


    .form-group {

        margin-bottom: 14px;

    }


    .input-box {

        height: 48px;

    }


    .login-button {

        height: 48px;

    }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .landing-wrapper *,
    .landing-wrapper *::before,
    .landing-wrapper *::after {

        transition: none !important;

        animation: none !important;

    }

}


/* =========================================================
   PRINT
========================================================= */

@media print {

    .top-navbar,
    .hero-buttons,
    .back-to-top {

        display: none !important;

    }

}

/* =========================================================
   FINAL RESPONSIVE LOGIN LAYOUT
   Current HTML structure:
   .hero-grid
      .hero-left
      .hero-right
         .login-card

   LOGIN IS THE PRIMARY ACTION ON SMALL SCREENS.
========================================================= */

/* ---------------------------------------------------------
   TABLET / SMALL LAPTOP
   Put login before marketing content.
--------------------------------------------------------- */

@media (max-width: 1100px) {

    .hero-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .hero-right {
        order: -1;
        width: 100%;
        justify-content: center;
        align-items: flex-start;
    }

    .hero-left {
        order: 1;
    }

    .login-card {
        width: 100%;
        max-width: 550px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* ---------------------------------------------------------
   TABLET
--------------------------------------------------------- */

@media (max-width: 768px) {

    .landing-wrapper {
        width: 100%;
        overflow-x: hidden;
    }

    .landing-wrapper .container {
        width: calc(100% - 28px);
        max-width: 720px;
    }

    .top-navbar {
        position: relative;
        width: 100%;
        padding: 12px 0;
    }

    .navbar-inner {
        width: 100%;
        gap: 12px;
    }

    .brand {
        min-width: 0;
    }

    .brand img {
        flex-shrink: 0;
    }

    .top-navbar nav {
        flex-shrink: 0;
    }

    .hero-section {
        min-height: auto;
        padding: 30px 0 55px;
    }

    .hero-grid {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 38px;
    }

    /* Login FIRST */
    .hero-right {
        order: -1;
        width: 100%;
        justify-content: center;
    }

    .hero-left {
        order: 1;
    }

    .login-card {
        width: 100%;
        max-width: 540px;
        margin: 0 auto;
    }
}

/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 576px) {

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .landing-wrapper {
        width: 100%;
        min-width: 0;
    }

    .landing-wrapper .container {
        width: calc(100% - 24px);
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    /* ---------------- NAVBAR ---------------- */

    .top-navbar {
        position: relative;
        padding: 10px 0;
    }

    .navbar-inner {
        width: 100%;
        flex-direction: column;
        gap: 9px;
    }

    .brand {
        width: 100%;
        justify-content: center;
        gap: 9px;
    }

    .brand img {
        width: 44px;
        height: 44px;
        flex: 0 0 44px;
        padding: 5px;
    }

    .brand h3 {
        font-size: 17px;
        line-height: 1.2;
    }

    .brand span {
        display: none;
    }

    .top-navbar nav {
        width: 100%;
        justify-content: center;
        gap: 5px;
    }

    .top-navbar nav a {
        min-height: 37px;
        padding: 7px 11px;
        font-size: 11px;
        border-radius: 9px;
    }

    /* ---------------- HERO ---------------- */

    .hero-section {
        padding: 24px 0 48px;
    }

    .hero-grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 38px;
    }

    /* LOGIN IS FIRST */
    .hero-right {
        order: -1;
        width: 100%;
        justify-content: center;
    }

    .hero-left {
        order: 1;
        width: 100%;
        text-align: center;
    }

    /* ---------------- LOGIN CARD ---------------- */

    .login-card {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 24px 17px;
        border-radius: 18px;
    }

    .login-header {
        margin-bottom: 22px;
    }

    .login-icon {
        width: 56px;
        height: 56px;
        margin-bottom: 14px;
        border-radius: 15px;
        font-size: 23px;
    }

    .login-header h2 {
        font-size: 25px;
        line-height: 1.2;
    }

    .login-header p {
        font-size: 12px;
        line-height: 1.55;
    }

    .login-card .form-group {
        margin-bottom: 17px;
    }

    .login-card .form-group label {
        margin-bottom: 7px;
        font-size: 12px;
    }

    .login-card .input-box {
        width: 100%;
        height: 52px;
        min-height: 52px;
        border-radius: 12px;
    }

    .login-card .input-box > i {
        width: 43px;
        height: 43px;
        font-size: 16px;
    }

    .login-card .input-box input {
        width: 100%;
        height: 100%;
        padding: 0 45px 0 43px;
        font-size: 13px;
    }

    #togglePassword {
        width: 38px !important;
        height: 38px !important;
        right: 4px !important;
    }

    #togglePassword i {
        font-size: 16px !important;
    }

    .login-card .login-options {
        width: 100%;
        margin: 2px 0 19px;
        gap: 8px;
    }

    .login-card .login-options label,
    .login-card .forgot-password-button {
        font-size: 11px;
    }

    .login-card .login-submit {
        width: 100%;
        height: 52px;
        min-height: 52px;
        border-radius: 12px;
        font-size: 14px;
    }

    /* ---------------- OTP ---------------- */

    .otp-header {
        margin-bottom: 21px;
    }

    .otp-header h3 {
        font-size: 21px;
    }

    .otp-header p {
        font-size: 12px;
    }

    #otp {
        letter-spacing: 5px;
        font-size: 18px !important;
        padding-left: 43px !important;
    }

    /* ---------------- HERO CONTENT BELOW LOGIN ---------------- */

    .hero-left h1 {
        max-width: 100%;
        font-size: 34px;
        line-height: 1.12;
        letter-spacing: -0.5px;
    }

    .hero-left p {
        font-size: 14px;
        line-height: 1.65;
    }

    .hero-buttons {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .btn-primary-custom,
    .btn-secondary-custom {
        width: 100%;
    }

    .hero-stats {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

/* ---------------------------------------------------------
   SMALL PHONES
--------------------------------------------------------- */

@media (max-width: 400px) {

    .landing-wrapper .container {
        width: calc(100% - 20px);
    }

    .brand img {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .brand h3 {
        font-size: 15px;
    }

    .top-navbar nav a {
        min-height: 35px;
        padding: 6px 9px;
        font-size: 10px;
    }

    .hero-section {
        padding-top: 20px;
    }

    .login-card {
        padding: 21px 14px;
    }

    .login-header h2 {
        font-size: 23px;
    }

    .login-card .input-box {
        height: 50px;
        min-height: 50px;
    }

    .login-card .input-box input {
        font-size: 12px;
        padding-left: 42px;
    }

    .login-card .login-options label,
    .login-card .forgot-password-button {
        font-size: 10.5px;
    }

    .login-card .login-submit {
        height: 50px;
        min-height: 50px;
    }
}

/* ---------------------------------------------------------
   VERY SMALL PHONES
--------------------------------------------------------- */

@media (max-width: 360px) {

    .brand h3 {
        font-size: 14px;
    }

    .top-navbar nav a {
        padding: 5px 7px;
        font-size: 9px;
    }

    .login-card {
        padding: 20px 12px;
    }

    .login-header h2 {
        font-size: 21px;
    }

    .login-card .login-options {
        flex-wrap: wrap;
    }

    .login-card .login-options label,
    .login-card .forgot-password-button {
        font-size: 10px;
    }
}

/* ---------------------------------------------------------
   LANDSCAPE MOBILE
--------------------------------------------------------- */

@media (max-height: 600px) and (orientation: landscape) {

    .hero-section {
        min-height: auto;
        padding: 24px 0 40px;
    }

    .hero-grid {
        gap: 30px;
    }

    .hero-right {
        order: -1;
    }

    .login-card {
        max-width: 500px;
        padding: 22px;
    }

    .login-header {
        margin-bottom: 16px;
    }

    .login-icon {
        width: 50px;
        height: 50px;
        margin-bottom: 10px;
    }

    .login-card .form-group {
        margin-bottom: 13px;
    }
}
/* =========================================================
   FINAL OTP / RESET CARD LAYOUT FIX
   Keep the same login-card size for every authentication step
========================================================= */

.login-card {
    width: 100%;
    max-width: 460px;
    min-width: 0;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
    box-sizing: border-box;
}

/* Every authentication screen uses the same width */
#passwordLoginSection,
#otpSection,
#passwordResetSection {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* OTP header must not shrink */
#otpSection .otp-header,
#passwordResetSection .otp-header {
    width: 100%;
    flex-shrink: 0;
    text-align: center;
}

/* OTP form elements */
#otpSection .form-group,
#passwordResetSection .form-group,
#otpSection .input-box,
#passwordResetSection .input-box {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Buttons must stay full width */
#otpSection .login-submit,
#passwordResetSection .login-submit {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Back buttons */
#otpSection #backToLoginButton,
#passwordResetSection #backFromResetButton {
    width: 100%;
    max-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* OTP input */
#otpSection #otp {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* =========================================================
   DESKTOP
========================================================= */

@media (min-width: 992px) {

    .login-card {
        width: 100%;
        max-width: 460px;
    }

}

/* =========================================================
   TABLET
========================================================= */

@media (min-width: 577px) and (max-width: 991px) {

    .login-card {
        width: 100%;
        max-width: 460px;
    }

}

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

@media (max-width: 576px) {

    .login-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    #passwordLoginSection,
    #otpSection,
    #passwordResetSection {
        width: 100%;
    }

}

/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 400px) {

    .login-card {
        width: 100%;
        max-width: 100%;
    }

}