@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&family=Montserrat:wght@300;400;500;600&display=swap');

body{
    margin:0;
    background:#efefef;
    font-family:'Poppins', Arial, sans-serif;
    font-weight:400;
    color:#444;
}

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

.main-wrapper{
    max-width:1500px;
    margin:auto;
    background:#f7f7f7;
    min-height:720px;
    padding-top:55px;
}

.center-box{
    text-align:center;
}

/* ================= LOGO ================= */

.top-logo{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:22px;
}

.garuda{
    height:80px;
}

.osslogo{
    width:380px;
    height:auto;
}

/* ================= HALAMAN AWAL ================= */

.title-area{
    font-size:64px;
    color:#a8bfdc;
    font-family:Georgia, serif;
    text-shadow:1px 1px #d8e6f4;
    margin-bottom:18px;
}

.form-box{
    width:760px;
    max-width:95%;
    margin:auto;
}

/* CAPTCHA */

#captcha{
    display:flex;
    justify-content:center;
    align-items:center;
    height:60px;
    margin-bottom:18px;
    user-select:none;
}

.font-captcha{
    font-size:34px;
    font-family:monospace;
    color:#b31b12;
    letter-spacing:2px;
    position:relative;
}

.font-captcha::before,
.font-captcha::after{
    content:'';
    position:absolute;
    left:-20px;
    right:-20px;
    height:1px;
    background:#d7d7d7;
}

.font-captcha::before{
    top:18px;
    transform:rotate(-8deg);
}

.font-captcha::after{
    top:34px;
    transform:rotate(7deg);
}

/* INPUT */

.codebox{
    width:100%;
    height:58px;
    border:2px solid #b51d15;
    border-radius:4px;
    font-size:22px;
    padding:0 18px;
    box-sizing:border-box;
    outline:none;
    font-family:'Poppins', Arial, sans-serif;
}

.codebox::placeholder{
    color:#a5a5a5;
    font-weight:300;
}

/* BUTTON */

.btn-main{
    width:100%;
    margin-top:25px;
    background:#004ca0;
    border:none;
    height:58px;
    font-size:24px;
    font-weight:500;
    color:#ffffff;
    border-radius:8px;
    cursor:pointer;
    transition:.2s;
    font-family:'Poppins', Arial, sans-serif;
}

.btn-main:hover{
    background:#0558b6;
}

.btn-main:active{
    transform:scale(.98);
}

/* ================= HALAMAN HASIL (FIX OSS ASLI) ================= */

.hasil-box{
    width:800px;
    max-width:94%;
    margin:0 auto 40px auto;
    background:#ececec;
    border-radius:24px;
    padding:22px 34px 28px;
    box-sizing:border-box;
    text-align:left;

    font-family:'Montserrat', Arial, sans-serif;
    color:#4a4a4a;
    font-size:15px;
    font-weight:400;
    line-height:1.6;
}

.text-center{
    text-align:center;
    font-family:'Montserrat', Arial, sans-serif;
    font-size:15px;
    font-weight:400;
    line-height:1.55;
    color:#4a4a4a;
    margin-bottom:22px;
}

.hasil-box p{
    margin:0 0 18px 0;
    font-family:'Montserrat', Arial, sans-serif;
}

.hasil-box a{
    color:#1d57b7;
    text-decoration:underline;
}

.hasil-box .btn-main{
    width:100%;
    height:46px;
    margin-top:8px;
    background:#00479b;
    border:none;
    border-radius:10px;

    font-family:'Montserrat', Arial, sans-serif;
    font-size:15px;
    font-weight:500;
    color:#ffffff;

    box-shadow:none;
}

/* ================= FOOTER ================= */

footer{
    background:#a91810;
    color:#ffffff;
    padding:55px 70px 45px;
    margin-top:40px;
    font-family:'Poppins', Arial, sans-serif;
}

.footer-wrap{
    max-width:1450px;
    margin:auto;
    display:grid;
    grid-template-columns:420px 1fr;
    gap:90px;
    align-items:flex-start;
}

/* kiri */

.footer-brand{
    display:flex;
    align-items:flex-start;
    gap:18px;
    margin-bottom:18px;
}

.footer-logo{
    height:52px;
    width:auto;
}

.footer-title{
    font-size:18px;
    font-weight:600;
    line-height:1.35;
    font-style:italic;
    margin-top:2px;
}

.footer-address{
    font-size:14px;
    font-weight:400;
    line-height:1.65;
    margin-left:70px;
    margin-bottom:38px;
}

.footer-copy{
    font-size:12px;
    font-weight:400;
    margin-left:70px;
    opacity:.95;
}

/* kanan */

.footer-text{
    font-size:14px;
    font-weight:500;
    line-height:1.5;
    margin-top:3px;
    margin-bottom:18px;
}

.footer-label{
    font-size:14px;
    font-weight:400;
    margin-bottom:12px;
}

.footer-contact{
    display:flex;
    flex-wrap:wrap;
    gap:26px;
    margin-bottom:38px;
}

.contact-item{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:14px;
    font-weight:400;
    color:#fff;
    text-decoration:none;
}

.icon-circle{
    width:30px;
    height:30px;
    border-radius:50%;
    background:#ffffff;
    color:#9b1f15;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15px;
    flex-shrink:0;
    text-decoration:none;
}

/* social */

.footer-social{
    display:flex;
    gap:8px;
    margin-top:8px;
}

.footer-social .icon-circle{
    width:30px;
    height:30px;
    font-size:14px;
}

.footer-social .icon-circle:hover{
    transform:scale(1.08);
    transition:.2s;
}

/* ================= LOADING ================= */

.loading-page{
    position:fixed;
    inset:0;
    background:rgba(255,255,255,.95);
    display:flex;
    justify-content:center;
    align-items:center;
    flex-direction:column;
    z-index:9999;
}

.loader{
    width:70px;
    height:70px;
    border:6px solid #ddd;
    border-top:6px solid #004ca0;
    border-radius:50%;
    animation:putar 1s linear infinite;
    margin-bottom:18px;
}

@keyframes putar{
    100%{transform:rotate(360deg);}
}

.loading-page span{
    font-size:20px;
    color:#444;
}

/* animasi */

.main-wrapper,
footer{
    animation:muncul .7s ease;
}

@keyframes muncul{
    from{
        opacity:0;
        transform:translateY(20px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* ================= RESPONSIVE ================= */

@media(max-width:992px){

footer{
    padding:45px 25px;
}

.footer-wrap{
    grid-template-columns:1fr;
    gap:35px;
}

.footer-address,
.footer-copy{
    margin-left:0;
}

.footer-contact{
    flex-direction:column;
    gap:14px;
}

}

@media(max-width:900px){

.main-wrapper{
    padding-top:40px;
}

.title-area{
    font-size:44px;
}

.form-box{
    width:92%;
}

.osslogo{
    width:260px;
}

.codebox,
.btn-main{
    height:54px;
    font-size:18px;
}

.hasil-box{
    width:95%;
    padding:22px 18px;
    font-size:14px;
}

.text-center{
    font-size:14px;
}

.hasil-box p{
    margin-bottom:16px;
}

.hasil-box .btn-main{
    height:44px;
    font-size:14px;
}

.footer-title,
.footer-text,
.footer-label{
    font-size:16px;
}

.footer-address,
.footer-copy,
.contact-item{
    font-size:13px;
}

}

.pdf-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
}