:root{
    --bg:#f5f9ff;
    --card:#ffffff;

    --primary:#2563eb;
    --primary-dark:#1d4ed8;

    --soft:#dbeafe;

    --text:#0f172a;
    --muted:#64748b;

    --border:#e2e8f0;

    --shadow:0 12px 35px rgba(37,99,235,.08);

    --radius-lg:28px;
    --radius-md:20px;
    --radius-sm:12px;

    --container:1180px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Arial,sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.7;
}

html.js [data-reveal]{
    opacity:0;
    transform:translateY(24px);
    transition:
            opacity .7s ease,
            transform .7s ease;
    will-change:opacity, transform;
}

html.js [data-reveal].is-visible{
    opacity:1;
    transform:none;
}

html.js [data-reveal].reveal-left{
    transform:translateX(-24px);
}

html.js [data-reveal].reveal-right{
    transform:translateX(24px);
}

html.js [data-reveal].reveal-scale{
    transform:scale(.96);
}

html.js [data-reveal].is-visible.reveal-left,
html.js [data-reveal].is-visible.reveal-right,
html.js [data-reveal].is-visible.reveal-scale{
    transform:none;
}

@media (prefers-reduced-motion: reduce){
    html.js [data-reveal]{
        opacity:1;
        transform:none;
        transition:none;
        will-change:auto;
    }
}

img{
    max-width:100%;
    display:block;
}

.container{
    width:min(var(--container),92%);
    margin:auto;
}

.small{
    color:var(--muted);
}

/* ======================
HEADER / NAVIGATION
====================== */

header{
    position:sticky;
    top:0;
    z-index:999;
    background:rgba(245,249,255,.96);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
}

nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    position:relative;
}

.brand{
    display:flex;
    align-items:center;
    gap:18px;
}

.logo-image{

    width:100px;
    height:100px;

    object-fit:contain;

    display:block;

    flex-shrink:0;

}

.company-name{
    display:block;
    font-size:1.55rem;
    font-weight:800;
    letter-spacing:.3px;
    line-height:1.1;
    color:#163b75;
}

.company-name a{
    color:inherit;
    text-decoration:none;
    transition:.2s ease;
}

.company-name a:hover{
    color:var(--primary);
}

.header-tagline{
    color:var(--muted);
}

.menu{
    display:flex;
    gap:28px;
    align-items:center;
}

.menu a{
    text-decoration:none;
    font-weight:600;
    color:var(--muted);
    transition:.2s;
}

.menu a:hover{
    color:var(--primary);
}

.mobile-toggle{
    display:none;
    background:none;
    border:none;
    font-size:30px;
    cursor:pointer;
}

.language-switcher{

    display:flex;

    align-items:center;

    gap:4px;

    padding:4px;

    border-radius:999px;

    background:white;

    border:1px solid var(--border);

    box-shadow:var(--shadow);

    margin-left:5px;

}

.language-switcher a{

    display:flex;

    align-items:center;

    justify-content:center;

    min-width:46px;

    height:36px;

    padding:0 14px;

    border-radius:999px;

    text-decoration:none;

    font-size:.92rem;

    font-weight:700;

    color:var(--muted);

    transition:.2s ease;

}

.language-switcher a:hover{

    color:var(--primary);

    background:var(--soft);

}

.language-switcher a.active{

    background:var(--primary);

    color:white;

    box-shadow:0 4px 12px rgba(37,99,235,.25);

}

/* ======================
SERVICES DROPDOWN
====================== */

.services-menu{
    position:relative;
    display:flex;
    align-items:center;
    height:50px;
}

.services-dropdown{
    position:absolute;
    top:100%;
    left:0;

    min-width:360px;

    padding:12px;

    background:white;

    border:1px solid var(--border);
    border-radius:16px;

    box-shadow:var(--shadow);

    display:flex;
    flex-direction:column;
    gap:6px;

    opacity:0;
    visibility:hidden;
    pointer-events:none;

    transform:translateY(8px);

    transition:.2s ease;

    z-index:9999;
}

.services-menu:hover .services-dropdown,
.services-menu:focus-within .services-dropdown{

    opacity:1;
    visibility:visible;
    pointer-events:auto;

    transform:none;

}

.services-dropdown a{
    padding:10px;
    border-radius:10px;
    color:var(--text)!important;
}

.services-dropdown a:hover{
    background:var(--soft);
}

/* ======================
DYNAMIC BANNER
====================== */

.dynamic-header {
    position: relative;
    height: 420px;
    overflow: hidden;
}

.dynamic-header-media {
    position: relative;
    width: 100%;
    height: 100%;
}

.dynamic-header .dynamic-header-media > .hero-slide {

    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    opacity: 0;

    transform: scale(1);

    transition:
            opacity 2s ease,
            transform 8s ease;

    z-index: 1;

}

.dynamic-header .dynamic-header-media > .hero-slide.active {

    opacity: 1;

    transform: scale(1.08);

    z-index: 2;

}

.hero-slide.active {
    opacity: 1;

    transform: scale(1.08);

    z-index: 2;
}

.dynamic-overlay {
    position: absolute;

    inset: 0;

    z-index: 10;

    display: flex;
    align-items: center;
}

.dynamic-content{
    max-width:600px;
    color:white;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.dynamic-badge{
    display:inline-block;

    padding:8px 14px;

    border-radius:999px;

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(10px);

    margin-bottom:20px;
}

.hero-title{
    min-height: 58px;
    margin:0;
}

#hero-message{

    transition:
            opacity .5s ease,
            transform .5s ease;

}

#hero-message.changing{

    opacity: 0;

    transform: translateY(12px);

}

/* ======================
SECTIONS
====================== */

section{
    padding:55px 0;
}

.hero{
    padding:80px 0 5px;
}

.hero-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:50px;
    align-items:center;
}

.center{
    text-align:center;
}

.badge{
    display:inline-block;

    padding:8px 14px;

    border-radius:999px;

    background:var(--soft);

    color:var(--primary);

    font-weight:700;
}

h1{
    font-size:clamp(2.8rem,6vw,5rem);

    line-height:1.05;

    margin:18px 0;
}

h2{
    font-size:2rem;
}

.sub{
    font-size:1.05rem;
    color:var(--muted);
}

/* ======================
CARDS
====================== */

.panel,
.card,
.info-box,
.feature,
.benefit-card,
.step,
.process,
.job-card,
.cta{

    background:white;

    border:1px solid var(--border);

    box-shadow:var(--shadow);

    border-radius:var(--radius-lg);

}

.panel,
.info-box,
.card,
.process{
    padding:34px;
}

.feature,
.step,
.benefit-card,
.job-card{
    padding:26px;
}

.metric{
    padding:18px 0;

    border-bottom:1px solid var(--border);
}

.metric:last-child{
    border:none;
}

.metric strong{
    display:block;

    margin-bottom:6px;

    color:var(--primary);
}

.metric span{
    color:var(--muted);
}

.icon{
    width:56px;
    height:56px;

    background:var(--soft);

    border-radius:16px;

    margin-bottom:16px;
}

.service-icon{

    width:64px;
    height:64px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-bottom:20px;

    border-radius:16px;

    background:#eff6ff;

    color:#2563eb;

    font-size:28px;

    transition:
            transform .3s ease,
            background .3s ease,
            color .3s ease;

}

.card:hover .service-icon{

    transform:translateY(-4px);

    background:#2563eb;

    color:#ffffff;

}

/* ======================
DELIVERY PROCESS
======================= */

.process-timeline{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:40px;

    margin-top:50px;

    position:relative;

}

.process-timeline::before{

    content:"";

    position:absolute;

    top:32px;

    left:12.5%;

    right:12.5%;

    height:2px;

    background:#dbeafe;

    z-index:0;

}

.process-step{

    position:relative;

    z-index:1;

    text-align:center;

    transition:transform .3s ease;

}

.process-step:hover{

    transform:translateY(-6px);

}

.process-circle{

    width:64px;

    height:64px;

    margin:0 auto 20px;

    border-radius:50%;

    background:#2563eb;

    color:#ffffff;

    font-size:20px;

    font-weight:700;

    display:flex;

    align-items:center;

    justify-content:center;

}

.process-icon{

    font-size:24px;

    color:#2563eb;

    margin-bottom:15px;

}

.process-step h3{

    margin-bottom:15px;

}

.process-step p{

    color:#64748b;

    line-height:1.6;

}

/* ======================
LAYOUT GRIDS
====================== */

.grid-1{
    display:grid;
    gap:22px;
}

.grid-2{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:22px;
}

.grid-3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.grid-4{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
}

.cards,
.process,
.benefits-grid{

    display:grid;

    gap:18px;

}

.cards{
    grid-template-columns:repeat(3,1fr);
}

.process{
    grid-template-columns:repeat(4,1fr);
}

.benefits-grid{
    grid-template-columns:repeat(4,1fr);
}

/* ======================
BUTTONS
====================== */

.btn{
    display:inline-block;

    padding:14px 22px;

    border:none;

    border-radius:12px;

    font-weight:700;

    cursor:pointer;

    text-decoration:none;

    transition:.2s;
}

.btn:hover{
    transform:translateY(-1px);
}

.primary{
    background:var(--primary);
    color:white;
}

.secondary{
    background:white;
    border:1px solid var(--border);
}

/* ======================
FORMS
====================== */

label{
    display:block;
    margin-bottom:8px;
    font-weight:600;
}

input,
textarea,
select{

    width:100%;

    padding:14px;

    border:1px solid var(--border);

    border-radius:12px;

    margin-bottom:18px;

    font-size:15px;
}

textarea{
    resize:vertical;
    min-height:160px;
}

/* ======================
TECH TAGS
====================== */

.techs{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}

.tech,
.tag{

    display:inline-block;

    padding:8px 12px;

    border-radius:999px;

    background:var(--soft);

    color:var(--primary);
}

/* ======================
CTA
====================== */

.cta{
    padding:50px;

    text-align:center;

    background:linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
    );

    color:white;
}

/* ======================
FOOTER
====================== */

footer{
    background:white;

    border-top:1px solid var(--border);

    padding:45px 0;
}

.footer{
    display:flex;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
}

.footer-social-link{

    display:inline-flex;
    align-items:center;
    gap:8px;

    color:inherit;
    text-decoration:none;

}

.footer-social-link:hover{

    color:#0A66C2;

}

/* ======================
RESPONSIVE
====================== */

@media(max-width:960px){

    .dynamic-header{
        display:none;
    }

    .header-tagline{
        display:none;
    }

    .mobile-toggle{
        display:block;
    }

    .menu{

        display:none;

        position:absolute;

        top:82px;
        left:0;

        width:100%;

        background:white;

        padding:20px;

        flex-direction:column;

        align-items:flex-start;

        box-shadow:var(--shadow);

        border-top:1px solid var(--border);

    }

    .menu.active{
        display:flex;
    }

    .services-menu{
        width:100%;
        display:block;
        height:auto;
    }

    .services-dropdown{

        position:static;

        display:none;

        opacity:1;
        visibility:visible;

        pointer-events:auto;

        transform:none;

        box-shadow:none;

        border:none;

        padding-left:10px;

        min-width:unset;

    }

    .services-menu:hover .services-dropdown{
        display:flex;
    }

    .hero-grid,
    .grid-2,
    .grid-3,
    .grid-4,
    .cards,
    .process,
    .benefits-grid{

        grid-template-columns:1fr;

    }

    .brand img{
        width:75px;
    }

    .dynamic-header-media{
        height:240px;
    }

}

/*==============================
WHAT WE DELIVER
============================== */

.service-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

    margin-top:50px;

}

.service-card{

    padding:35px;

    border:1px solid #e5e7eb;

    border-radius:20px;

    background:#ffffff;

    transition:all .3s ease;

}

.service-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(0,0,0,.08);

}

.service-benefits{

    list-style:none;

    padding:0;

    margin:25px 0 0;

}

.service-benefits li{

    margin-bottom:10px;

    color:#475569;

}

.service-benefits li::before{

    content:"✓";

    color:#2563eb;

    font-weight:700;

    margin-right:10px;

}

/*===========================
OUR DEV PROCESS
 ==========================*/

.service-process{

    margin-top:35px;

}

.service-process-step{

    display:flex;

    gap:25px;

    position:relative;

    padding-bottom:35px;

}

.service-process-step:last-child{

    padding-bottom:0;

}

.service-process-step:not(:last-child)::before{

    content:"";

    position:absolute;

    left:31px;

    top:64px;

    width:2px;

    bottom:0;

    background:#dbeafe;

}

.service-process-marker{

    width:64px;

    height:64px;

    flex-shrink:0;

    border-radius:50%;

    background:#eff6ff;

    color:#2563eb;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

    transition:
            all .3s ease;

}

.service-process-step:hover .service-process-marker{

    background:#2563eb;

    color:#ffffff;

    transform:scale(1.08);

}

.service-process-content h3{

    margin-bottom:10px;

}

.service-process-content p{

    margin:0;

    color:#64748b;

    line-height:1.7;

}

/*=================================
WHAT YOU GAIN
 ============================ */

.gain-list{

    display:flex;

    flex-direction:column;

    gap:25px;

    margin-top:30px;

}

.gain-item{

    display:flex;

    gap:20px;

    align-items:flex-start;

}

.gain-icon{

    width:48px;

    height:48px;

    flex-shrink:0;

    border-radius:14px;

    background:#eff6ff;

    color:#2563eb;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:20px;

    transition:all .3s ease;

}

.gain-item:hover .gain-icon{

    background:#2563eb;

    color:#ffffff;

    transform:translateY(-3px);

}

.gain-item strong{

    display:block;

    margin-bottom:6px;

}

.gain-item p{

    margin:0;

    color:#64748b;

    line-height:1.6;

}

/*===================================
TYPICAL USE CASES
=================================== */
.use-cases-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:15px;

    margin-top:25px;

}

.use-case{

    display:flex;

    align-items:center;

    gap:15px;

    padding:18px;

    border:1px solid #e5e7eb;

    border-radius:14px;

    background:#ffffff;

    transition:all .3s ease;

}

.use-case:hover{

    transform:translateY(-3px);

    border-color:#bfdbfe;

    box-shadow:0 10px 25px rgba(0,0,0,.05);

}

.use-case i{

    width:40px;

    height:40px;

    border-radius:12px;

    background:#eff6ff;

    color:#2563eb;

    display:flex;

    align-items:center;

    justify-content:center;

    flex-shrink:0;

}

.use-case span{

    font-weight:500;

}

/*==============================
CONTACT FORM ALERTS
============================== */
/*
========================================
Alerts
========================================
*/

.alert{

    padding:16px 20px;

    margin-bottom:25px;

    border-radius:12px;

    border:1px solid transparent;

    font-size:.95rem;

    line-height:1.6;

    font-weight:500;

    display:flex;

    align-items:center;

    gap:12px;

}

.alert::before{

    font-family:"Font Awesome 6 Free";

    font-weight:900;

    font-size:1rem;

    flex-shrink:0;

}

.alert-success{

    background:#f0fdf4;

    border-color:#bbf7d0;

    color:#166534;

}

.alert-success::before{

    content:"\f058";   /* fa-circle-check */

}

.alert-error{

    background:#fef2f2;

    border-color:#fecaca;

    color:#991b1b;

}

.alert-error::before{

    content:"\f071";   /* fa-triangle-exclamation */

}

/*=======================
BADGE BUTTON
======================== */

.btn-secondary {
    background: transparent;
    border: 1px solid rgba(255,255,255,.35);
    color: white;
}

.btn-secondary:hover {
    background: rgba(255,255,255,.08);
}



@media (max-width:768px){

    .alert{

        padding:14px 16px;

        font-size:.9rem;

        align-items:flex-start;

    }

}

.mipashop-banner {
    padding: 14px 0;

    background: #f5f8fc;

    border-bottom: 1px solid rgba(6, 44, 92, 0.08);
}

.mipashop-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 24px;
}

.mipashop-banner-text {
    display: flex;
    align-items: center;

    gap: 9px;

    color: #062c5c;

    font-size: 15px;
}

.mipashop-banner-text > i {
    color: #ff7100;

    font-size: 18px;
}

.mipashop-banner-text strong {
    font-weight: 800;
}

.mipashop-banner-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 10px 18px;

    color: #ffffff;
    background: #ff7100;

    border-radius: 8px;

    font-size: 13px;
    font-weight: 700;

    text-decoration: none;

    transition:
            background-color 0.2s ease,
            transform 0.2s ease;
}

.mipashop-banner-button:hover {
    color: #ffffff;
    background: #e96500;

    transform: translateY(-1px);
}

.mipashop-banner-button i {
    font-size: 11px;
}

@media (max-width: 640px) {
    .mipashop-banner {
        padding: 12px 0;
    }

    .mipashop-banner-content {
        flex-direction: column;

        gap: 9px;
    }

    .mipashop-banner-text {
        font-size: 14px;

        text-align: center;
    }

    .mipashop-banner-button {
        padding: 9px 16px;

        font-size: 12px;
    }
}

/* ============================================================
   MIPA AI AGENT BANNER
   ============================================================ */

.ai-agent-banner {
    background:
            linear-gradient(
                    135deg,
                    #062c5c 0%,
                    #0879c9 100%
            );

    color: #ffffff;
}

.ai-agent-banner-content {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding-top: 14px;
    padding-bottom: 14px;
}

.ai-agent-banner-text {
    display: flex;
    align-items: center;

    gap: 14px;
}

.ai-agent-banner-text > i {
    color: #ffcb05;

    font-size: 25px;
}

.ai-agent-banner-text > div {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;

    gap: 5px 12px;
}

.ai-agent-banner-text strong {
    font-size: 16px;
    font-weight: 700;
}

.ai-agent-banner-text span {
    font-size: 14px;

    opacity: 0.9;
}

.ai-agent-banner-button {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    flex-shrink: 0;

    padding: 10px 17px;

    color: #ffffff;
    background: #ff7100;

    border-radius: 8px;

    font-size: 14px;
    font-weight: 700;

    text-decoration: none;

    transition:
            background-color 0.2s ease,
            transform 0.2s ease;
}

.ai-agent-banner-button:hover {
    color: #ffffff;
    background: #f04d00;

    transform: translateY(-1px);
}

