/* =========================================================
   UAE eVisa - DESIGN SYSTEM (GLOBAL FILE)
   Version: 1.0
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* =========================================================
   ROOT VARIABLES (CHANGE COLORS HERE ONLY)
========================================================= */
:root{
    --primary-red:#C8102E;
    --primary-yellow:#FFCD00;
    --primary-white:#FFFFFF;

    --red-light:#E53935;
    --red-dark:#9E0B23;

    --yellow-light:#FFD84D;
    --yellow-dark:#E6B800;

    --bg-primary:#FFFFFF;
    --bg-light:#FFF8E1;
    --bg-dark:#8B0015;

    --text-dark:#1A1A1A;
    --text-light:#FFFFFF;
    --text-muted:#6B7280;

    --shadow-sm:0 4px 20px rgba(200,16,46,.08);
    --shadow-md:0 10px 30px rgba(200,16,46,.12);

    --border-color:rgba(200,16,46,.12);

    --radius-sm:8px;
    --radius-md:14px;
    --radius-lg:20px;
    --radius-full:50px;

    --transition:all .3s ease;

    --gradient-primary:linear-gradient(135deg,var(--primary-red),var(--red-light));
    --gradient-yellow:linear-gradient(135deg,var(--primary-yellow),var(--yellow-light));
    --gradient-vietnam:linear-gradient(135deg,var(--primary-red),var(--primary-yellow));

    --footer-bg:var(--red-dark);
}

/* =========================================================
   GLOBAL RESET
========================================================= */

html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Poppins', sans-serif;
    background: var(--bg-light);
    color: var(--text-dark);
    line-height: 1.6;
}

a{
    text-decoration:none;
    transition:var(--transition);
}

img{
    max-width:100%;
}

 /* =========================
    GLOBAL TYPOGRAPHY SYSTEM
    RESPONSIVE eVISA PORTAL
========================= */
/* ================= HEADINGS (DESKTOP FIRST) ================= */

h1{
    font-size: 38px;
    line-height: 1.2;
    font-weight: 700;
    margin-bottom: 15px;
}

h2{
    font-size: 30px;
    line-height: 1.25;
    font-weight: 700;
    margin-bottom: 12px;
}

h3{
    font-size: 24px;
    line-height: 1.3;
    font-weight: 600;
    margin-bottom: 10px;
}

h4{
    font-size: 20px;
    line-height: 1.4;
    font-weight: 600;
}

h5{
    font-size: 18px;
    line-height: 1.4;
    font-weight: 600;
}

h6{
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
}

/* ================= TEXT ================= */

p{
    font-size: 15px;
    line-height: 1.8;
}

span{
    font-size: 14px;
    line-height: 1.6;
}

small{
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-muted);
}

/* ================= LINKS ================= */

a{
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}

a:hover{
    color: var(--primary-red);
}

/* ================= RESPONSIVE BREAKPOINTS ================= */

/* TABLET */
@media (max-width: 992px){

    h1{
        font-size: 32px;
    }

    h2{
        font-size: 26px;
    }

    h3{
        font-size: 22px;
    }

    h4{
        font-size: 18px;
    }
}

/* MOBILE */
@media (max-width: 768px){

    body{
        font-size: 14px;
        line-height: 1.7;
    }

    h1{
        font-size: 26px;
        line-height: 1.25;
    }

    h2{
        font-size: 22px;
    }

    h3{
        font-size: 20px;
    }

    h4{
        font-size: 18px;
    }

    p{
        font-size: 14px;
        line-height: 1.7;
    }

    span{
        font-size: 13px;
    }
}

/* SMALL MOBILE */
@media (max-width: 480px){

    h1{
        font-size: 22px;
    }

    h2{
        font-size: 20px;
    }

    h3{
        font-size: 18px;
    }

    p{
        font-size: 13px;
    }
}

/* =========================================================
   CONTAINER
========================================================= */

.container{
    max-width:1200px;
    margin:auto;
    padding:0 15px;
}

/* =========================================================
   BUTTON SYSTEM
========================================================= */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 26px;
    border-radius:var(--radius-full);
    font-weight:600;
    font-size:14px;
    border:none;
    cursor:pointer;
    transition:var(--transition);
}

.btn-primary{
    background:var(--gradient-primary);
    color:#fff;
}

.btn-primary:hover{
    background:var(--gradient-red);
    color:#fff;
    transform:translateY(-2px);
}

.form-btn{
    width:100%;
}

.btn-outline{
    border:2px solid var(--primary-blue);
    background:transparent;
    color:var(--primary-blue);
}

.btn-outline:hover{
    background:var(--primary-blue);
    color:#fff;
}

.btn-dark{
    background:var(--gradient-malaysia);
    color:#fff;
}

.btn-dark:hover{
    opacity:.95;
    transform:translateY(-2px);
}

.btn-block{
    width:100%;
}


/* =========================================================
   CARD SYSTEM
========================================================= */

.card{
    background:#FFFFFF;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-sm);
    padding:25px;
    border:1px solid rgba(0,50,160,.08);
    transition:var(--transition);
    overflow:hidden;
}

.card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-md);
    border-color:rgba(0,50,160,.15);
}

.card-header{
    font-size:18px;
    font-weight:700;
    margin-bottom:12px;
    color:var(--primary-blue);
    position:relative;
}

.card-header::after{
    content:'';
    display:block;
    width:50px;
    height:3px;
    margin-top:8px;
    border-radius:10px;
    background:var(--primary-red);
}

.card-body{
    color:var(--text-muted);
    line-height:1.7;
}

/* CARD ICON */

.card-icon{
    width:60px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(0,50,160,.08);
    color:var(--primary-blue);
    font-size:24px;
    margin-bottom:15px;
}

/* FEATURE CARD */

.feature-card{
    text-align:center;
    height:100%;
}

.feature-card:hover .card-icon{
    background:var(--primary-blue);
    color:#FFFFFF;
}

/* VISA CARD */

.visa-card{
    position:relative;
}

.visa-card::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:var(--gradient-malaysia);
}


/* =========================================================
   BADGES
========================================================= */

.badge{
    display:inline-flex;
    align-items:center;
    padding:6px 12px;
    border-radius:50px;
    font-size:12px;
    font-weight:600;
    gap:5px;
}

/* PRIMARY */

.badge-primary{
    background:rgba(0,50,160,.10);
    color:var(--primary-blue);
}

/* SUCCESS */

.badge-success{
    background:rgba(0,50,160,.12);
    color:var(--primary-blue);
}

/* DANGER */

.badge-danger{
    background:rgba(204,0,0,.12);
    color:var(--primary-red);
}

/* WARNING */

.badge-warning{
    background:rgba(204,0,0,.08);
    color:var(--primary-red);
}

/* LIGHT */

.badge-light{
    background:#F8FAFD;
    color:var(--text-dark);
    border:1px solid var(--border-color);
}

/* GRADIENT */

.badge-gradient{
    background:var(--gradient-malaysia);
    color:#FFFFFF;
}

/* =========================================================
   UTILITIES
========================================================= */

/* TEXT ALIGN */

.text-center{ text-align:center; }
.text-left{ text-align:left; }
.text-right{ text-align:right; }

/* TEXT COLORS */

.text-primary{ color:var(--primary-blue)!important; }
.text-danger{ color:var(--primary-red)!important; }
.text-white{ color:var(--primary-white)!important; }
.text-muted{ color:var(--text-muted)!important; }

/* BACKGROUNDS */

.bg-primary{ background:var(--primary-blue)!important; }
.bg-danger{ background:var(--primary-red)!important; }
.bg-light{ background:var(--bg-light)!important; }
.bg-white{ background:#FFFFFF!important; }

/* MARGIN TOP */

.mt-10{ margin-top:10px; }
.mt-20{ margin-top:20px; }
.mt-30{ margin-top:30px; }
.mt-40{ margin-top:40px; }
.mt-50{ margin-top:50px; }

/* MARGIN BOTTOM */

.mb-10{ margin-bottom:10px; }
.mb-20{ margin-bottom:20px; }
.mb-30{ margin-bottom:30px; }
.mb-40{ margin-bottom:40px; }
.mb-50{ margin-bottom:50px; }

/* PADDING */

.pt-20{ padding-top:20px; }
.pt-40{ padding-top:40px; }
.pb-20{ padding-bottom:20px; }
.pb-40{ padding-bottom:40px; }

/* WIDTH */

.w-100{ width:100%; }

/* DISPLAY */

.d-flex{ display:flex; }
.align-center{ align-items:center; }
.justify-center{ justify-content:center; }
.justify-between{ justify-content:space-between; }

/* BORDER RADIUS */

.radius-sm{ border-radius:var(--radius-sm); }
.radius-md{ border-radius:var(--radius-md); }
.radius-lg{ border-radius:var(--radius-lg); }

/* SHADOW */

.shadow-sm{ box-shadow:var(--shadow-sm); }
.shadow-md{ box-shadow:var(--shadow-md); }

/* =========================================================
   FAQ SECTION
========================================================= */

.faq-section{
    background: var(--bg-light);
    position: relative;
}

.custom-faq{
    margin: auto;
}

.custom-faq .accordion-item{
    border: 1px solid var(--border-color);
    margin-bottom: 18px;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--bg-primary);
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
}

.custom-faq .accordion-item:hover{
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.custom-faq .accordion-button{
    background: var(--bg-primary);
    padding: 24px 70px 24px 25px;
    font-size: 17px;
    font-weight: 600;
    color: var(--text-dark);
    box-shadow: none !important;
    position: relative;
    transition: var(--transition);
}

.custom-faq .accordion-button:focus{
    box-shadow: none;
    border: none;
}

.custom-faq .accordion-button:not(.collapsed){
    background: rgba(0,50,160,.04);
    color: var(--primary-blue);
}

/* Remove Bootstrap Arrow */

.custom-faq .accordion-button::after{
    display: none;
}

/* Plus Icon */

.custom-faq .accordion-button::before{
    content: "+";
    position: absolute;
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(0,50,160,.08);
    color: var(--primary-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    transition: var(--transition);
}

/* Minus Icon */

.custom-faq .accordion-button:not(.collapsed)::before{
    content: "−";
    background: var(--gradient-malaysia);
    color: var(--text-light);
}

/* Content */

.custom-faq .accordion-body{
    padding: 0 25px 25px;
    color: var(--text-muted);
    line-height: 1.8;
    font-size: 15px;
}

/* Optional Left Border on Active Item */

.custom-faq .accordion-item:has(.accordion-button:not(.collapsed)){
    border-left: 4px solid var(--primary-red);
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width:768px){

    .custom-faq .accordion-button{
        font-size: 15px;
        padding: 18px 60px 18px 18px;
    }

    .custom-faq .accordion-body{
        padding: 0 18px 20px;
    }

    .custom-faq .accordion-button::before{
        width: 32px;
        height: 32px;
        font-size: 20px;
        right: 15px;
    }

}

/* Message Box */

 .status-message-box{
    margin-bottom:15px;
    padding:12px 15px;
    border-radius:8px;
    font-size:12px;
    font-weight:500;
}

.status-message-box.success{
    background:#f0fdf4;
    color:#166534;
    border:1px solid #bbf7d0;
}

.status-message-box.warning{
    background:#fffbeb;
    color:#92400e;
    border:1px solid #fde68a;
}

.status-message-box.error{
    background:#fef2f2;
    color:#991b1b;
    border:1px solid #fecaca;
}

