/* =========================================================
   KIMU LOAN
   Public Website
   Mobile First / Lightweight UI
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{
    --primary:#087a4c;
    --primary-dark:#06613d;
    --primary-soft:#eaf7f0;

    --dark:#17231e;
    --text:#3f4c46;
    --muted:#6f7b75;

    --white:#ffffff;
    --bg:#f7f9f8;

    --border:#e1e8e4;
    --danger:#c62828;
    --success:#087a4c;

    --radius:12px;

    --shadow:
        0 8px 28px rgba(19,55,39,.06);
}

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
    background:var(--bg);
    color:var(--dark);

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:16px;
    line-height:1.6;
}

body.menu-open{
    overflow:hidden;
}

a{
    color:inherit;
}

button,
input,
select,
textarea{
    font:inherit;
}

img{
    max-width:100%;
    display:block;
}

.container{
    width:92%;
    max-width:1180px;
    margin:auto;
}


/* =========================================================
   HEADER
========================================================= */

.site-header{
    position:sticky;
    top:0;
    z-index:1000;

    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--border);

    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.header-inner{
    min-height:70px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:24px;
}


/* BRAND */

.brand{
    display:flex;
    align-items:center;
    gap:10px;

    text-decoration:none;
    flex-shrink:0;
}

.brand-mark{
    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:10px;

    background:var(--primary);
    color:#fff;

    font-size:18px;
}

.brand-name{
    display:block;

    color:var(--primary-dark);

    font-size:18px;
    font-weight:800;

    line-height:1.15;
}

.brand-subtitle{
    display:block;

    margin-top:3px;

    color:var(--muted);

    font-size:10px;
    font-weight:600;
}


/* NAV */

.desktop-nav{
    margin-left:auto;

    display:flex;
    align-items:center;
    gap:3px;
}

.desktop-nav a{
    min-height:42px;

    display:flex;
    align-items:center;

    padding:0 13px;

    border-radius:8px;

    text-decoration:none;

    color:var(--text);

    font-size:14px;
    font-weight:600;

    transition:.2s ease;
}

.desktop-nav a:hover,
.desktop-nav a.active{
    background:var(--primary-soft);
    color:var(--primary-dark);
}


/* HEADER ACTIONS */

.header-actions{
    display:flex;
    align-items:center;
    gap:8px;
}


/* LANGUAGE */

.language-switcher{
    display:flex;
    align-items:center;

    padding:4px;

    background:#f3f6f4;

    border:1px solid var(--border);
    border-radius:9px;
}

.language-switcher a{
    min-width:42px;
    height:32px;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:0 8px;

    border-radius:6px;

    text-decoration:none;

    color:var(--muted);

    font-size:11px;
    font-weight:800;
}

.language-switcher a.active{
    background:var(--primary);
    color:#fff;
}


/* BUTTONS */

.btn{
    min-height:46px;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:8px;

    padding:0 18px;

    border:1px solid transparent;
    border-radius:9px;

    text-decoration:none;

    font-size:14px;
    font-weight:700;

    cursor:pointer;

    transition:.2s ease;
}

.btn-primary{
    background:var(--primary);
    color:#fff;
}

.btn-primary:hover{
    background:var(--primary-dark);
}

.btn-outline{
    background:#fff;
    color:var(--primary-dark);

    border-color:var(--border);
}

.btn-outline:hover{
    background:var(--primary-soft);
    border-color:#bddbcb;
}

.btn-full{
    width:100%;
}


/* MOBILE BUTTON */

.menu-button{
    width:42px;
    height:42px;

    display:none;
    align-items:center;
    justify-content:center;

    border:1px solid var(--border);
    border-radius:9px;

    background:#fff;

    color:var(--dark);

    font-size:18px;

    cursor:pointer;
}


/* =========================================================
   MOBILE MENU
========================================================= */

.menu-overlay{
    position:fixed;
    inset:0;

    z-index:1090;

    background:rgba(6,25,16,.45);

    opacity:0;
    visibility:hidden;

    transition:.2s ease;
}

.menu-overlay.show{
    opacity:1;
    visibility:visible;
}

.mobile-menu{
    position:fixed;

    top:0;
    right:0;
    bottom:0;

    z-index:1100;

    width:310px;
    max-width:88%;

    display:flex;
    flex-direction:column;

    padding:18px;

    background:#fff;

    box-shadow:-15px 0 40px rgba(0,0,0,.12);

    transform:translateX(105%);

    transition:.25s ease;
}

.mobile-menu.open{
    transform:translateX(0);
}

.mobile-menu-header{
    min-height:52px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:15px;

    padding-bottom:15px;

    border-bottom:1px solid var(--border);
}

.mobile-menu-title{
    font-size:17px;
    font-weight:800;

    color:var(--primary-dark);
}

.menu-close{
    width:40px;
    height:40px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:0;
    border-radius:8px;

    background:#f1f4f2;

    color:var(--dark);

    font-size:18px;

    cursor:pointer;
}

.mobile-links{
    display:flex;
    flex-direction:column;

    gap:5px;

    padding:18px 0;
}

.mobile-links a{
    min-height:50px;

    display:flex;
    align-items:center;

    gap:12px;

    padding:0 14px;

    border-radius:9px;

    text-decoration:none;

    color:var(--text);

    font-size:15px;
    font-weight:600;
}

.mobile-links a i{
    width:20px;

    color:var(--primary);

    text-align:center;
}

.mobile-links a:hover,
.mobile-links a.active{
    background:var(--primary-soft);
    color:var(--primary-dark);
}

.mobile-bottom{
    margin-top:auto;

    padding-top:16px;

    border-top:1px solid var(--border);
}

.mobile-language-title{
    display:block;

    margin-bottom:8px;

    color:var(--muted);

    font-size:12px;
    font-weight:700;
}

.mobile-language{
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:8px;

    margin-bottom:12px;
}

.mobile-language a{
    min-height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid var(--border);
    border-radius:8px;

    text-decoration:none;

    font-size:12px;
    font-weight:800;
}

.mobile-language a.active{
    background:var(--primary);
    border-color:var(--primary);
    color:#fff;
}


/* =========================================================
   HERO
========================================================= */

.hero{
    padding:80px 0 70px;

    background:#fff;
}

.hero-inner{
    max-width:780px;
    margin:auto;

    text-align:center;
}

.hero-badge{
    display:inline-flex;
    align-items:center;

    gap:7px;

    margin-bottom:18px;

    padding:7px 12px;

    border-radius:50px;

    background:var(--primary-soft);

    color:var(--primary-dark);

    font-size:13px;
    font-weight:700;
}

.hero h1{
    max-width:720px;

    margin:0 auto 18px;

    color:var(--dark);

    font-size:46px;
    line-height:1.12;

    letter-spacing:-1.4px;
}

.hero p{
    max-width:650px;

    margin:0 auto 26px;

    color:var(--muted);

    font-size:17px;
    line-height:1.7;
}

.hero-actions{
    display:flex;
    justify-content:center;

    gap:10px;

    flex-wrap:wrap;
}


/* =========================================================
   SECTIONS
========================================================= */

.section{
    padding:70px 0;
}

.section-white{
    background:#fff;
}

.section-header{
    max-width:650px;

    margin:0 auto 35px;

    text-align:center;
}

.section-label{
    display:block;

    margin-bottom:7px;

    color:var(--primary);

    font-size:13px;
    font-weight:800;

    text-transform:uppercase;
}

.section-title{
    margin-bottom:10px;

    color:var(--dark);

    font-size:30px;
    line-height:1.25;
}

.section-description{
    color:var(--muted);

    font-size:16px;
}


/* =========================================================
   STEP CARDS
========================================================= */

.steps-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:18px;
}

.step-card{
    padding:27px 24px;

    border:1px solid var(--border);
    border-radius:var(--radius);

    background:#fff;
}

.step-number{
    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:18px;

    border-radius:10px;

    background:var(--primary-soft);

    color:var(--primary);

    font-size:16px;
    font-weight:800;
}

.step-card h3{
    margin-bottom:8px;

    font-size:18px;
}

.step-card p{
    color:var(--muted);

    font-size:15px;
}


/* =========================================================
   SIMPLE CARDS
========================================================= */

.card{
    background:#fff;

    border:1px solid var(--border);
    border-radius:var(--radius);

    box-shadow:var(--shadow);
}

.card-header{
    padding:20px 22px;

    border-bottom:1px solid var(--border);
}

.card-header h2,
.card-header h3{
    font-size:19px;
}

.card-body{
    padding:22px;
}


/* =========================================================
   FORMS
========================================================= */

.form-page{
    padding:45px 0 70px;
}

.form-container{
    max-width:760px;
    margin:auto;
}

.page-heading{
    margin-bottom:28px;
}

.page-heading h1{
    margin-bottom:7px;

    font-size:30px;
    line-height:1.25;
}

.page-heading p{
    color:var(--muted);

    font-size:15px;
}

.form-section{
    margin-bottom:18px;

    padding:25px;

    background:#fff;

    border:1px solid var(--border);
    border-radius:var(--radius);
}

.form-section-title{
    margin-bottom:20px;

    font-size:18px;
}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);

    gap:18px;
}

.form-group{
    display:flex;
    flex-direction:column;

    gap:7px;
}

.form-group.full{
    grid-column:1 / -1;
}

.form-group label{
    color:var(--dark);

    font-size:14px;
    font-weight:700;
}

.required{
    color:var(--danger);
}

.form-control{
    width:100%;
    min-height:50px;

    padding:11px 13px;

    border:1px solid #d8e0dc;
    border-radius:8px;

    outline:none;

    background:#fff;

    color:var(--dark);

    font-size:16px;

    transition:.2s;
}

textarea.form-control{
    min-height:115px;

    resize:vertical;
}

.form-control:focus{
    border-color:var(--primary);

    box-shadow:
        0 0 0 3px rgba(8,122,76,.08);
}

.form-help{
    color:var(--muted);

    font-size:13px;
}

.form-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;

    gap:10px;

    margin-top:22px;
}


/* =========================================================
   ALERTS
========================================================= */

.alert{
    margin-bottom:18px;

    padding:14px 16px;

    border-radius:9px;

    font-size:14px;
}

.alert-success{
    background:#eaf7f0;
    color:#075b3a;

    border:1px solid #c7e7d6;
}

.alert-danger{
    background:#fff0f0;
    color:#9b1c1c;

    border:1px solid #f0caca;
}


/* =========================================================
   SUPPORT
========================================================= */

.support-box{
    max-width:760px;

    margin:auto;

    padding:30px;

    text-align:center;

    background:var(--primary-dark);

    border-radius:14px;

    color:#fff;
}

.support-box h2{
    margin-bottom:8px;

    font-size:25px;
}

.support-box p{
    margin-bottom:20px;

    color:rgba(255,255,255,.8);
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer{
    background:#fff;

    border-top:1px solid var(--border);
}

.footer-inner{
    min-height:78px;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;
}

.footer-brand{
    font-size:14px;
    font-weight:800;

    color:var(--primary-dark);
}

.footer-copy{
    color:var(--muted);

    font-size:13px;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:950px){

    .desktop-nav,
    .desktop-action{
        display:none;
    }

    .menu-button{
        display:flex;
    }

    .steps-grid{
        grid-template-columns:1fr;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:650px){

    body{
        font-size:16px;
    }

    .container{
        width:100%;
        padding-left:16px;
        padding-right:16px;
    }

    .header-inner{
        min-height:64px;

        gap:8px;
    }

    .brand-mark{
        width:39px;
        height:39px;
    }

    .brand-name{
        font-size:16px;
    }

    .brand-subtitle{
        display:none;
    }

    .header-actions .language-switcher{
        display:none;
    }

    .menu-button{
        width:40px;
        height:40px;
    }


    /* HERO */

    .hero{
        padding:55px 0 50px;
    }

    .hero h1{
        font-size:31px;
        line-height:1.17;

        letter-spacing:-.6px;
    }

    .hero p{
        font-size:16px;
        line-height:1.65;
    }

    .hero-actions{
        flex-direction:column;
    }

    .hero-actions .btn{
        width:100%;
        min-height:50px;
    }


    /* SECTIONS */

    .section{
        padding:50px 0;
    }

    .section-header{
        margin-bottom:25px;

        text-align:left;
    }

    .section-title{
        font-size:25px;
    }


    /* STEPS */

    .steps-grid{
        gap:12px;
    }

    .step-card{
        padding:22px 19px;
    }


    /* FORM */

    .form-page{
        padding:30px 0 50px;
    }

    .page-heading{
        margin-bottom:20px;
    }

    .page-heading h1{
        font-size:26px;
    }

    .form-section{
        padding:20px 16px;
    }

    .form-grid{
        grid-template-columns:1fr;

        gap:16px;
    }

    .form-group.full{
        grid-column:auto;
    }

    .form-control{
        min-height:52px;
    }

    .form-actions{
        flex-direction:column-reverse;
    }

    .form-actions .btn{
        width:100%;
        min-height:50px;
    }


    /* FOOTER */

    .footer-inner{
        padding-top:20px;
        padding-bottom:20px;

        flex-direction:column;

        align-items:flex-start;

        gap:4px;
    }

}


/* =========================================================
   SMALL PHONE
========================================================= */

@media(max-width:360px){

    .hero h1{
        font-size:28px;
    }

    .mobile-menu{
        width:100%;
        max-width:100%;
    }

}