/* ==========================================
   PRECISION AXIS FRAMEWORK
   Base Styles
========================================== */

:root{

    /* Brand Colors */
    --primary:#0B3D91;
    --secondary:#2563EB;
    --accent:#D62828;

    /* Neutral */
    --dark:#0F172A;
    --text:#475569;
    --light:#F8FAFC;
    --white:#FFFFFF;
    --border:#E5E7EB;

    /* Fonts */
    --heading:'Plus Jakarta Sans',sans-serif;
    --body:'Inter',sans-serif;

    /* Radius */
    --radius-sm:8px;
    --radius:16px;
    --radius-lg:24px;

    /* Shadows */
    --shadow-sm:0 5px 20px rgba(0,0,0,.08);
    --shadow:0 12px 35px rgba(0,0,0,.12);
    --shadow-lg:0 25px 60px rgba(0,0,0,.18);

    /* Transition */
    --transition:.35s ease;
}

/* ===============================
   Reset
================================ */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:var(--body);
    color:var(--text);
    background:var(--white);
    overflow-x:hidden;
    padding-top:84px;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

section{
    padding:100px 0;
}

/* ==========================================
   LAYOUT
========================================== */

.pa-container{

    width:100%;

    max-width:1320px;

    margin:auto;

    padding:0 20px;

}

/* ==========================================
   SCROLL REVEAL
========================================== */

.pa-scroll-reveal{
    opacity:0;
    transform:translateX(-54px);
    transition:opacity .45s ease, transform .45s cubic-bezier(.2,.78,.2,1);
    will-change:opacity, transform;
}

.pa-scroll-reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

@keyframes appear{
    from{
        opacity:.08;
        transform:translateX(-66px) scale(.985);
    }
    to{
        opacity:1;
        transform:translateX(0) scale(1);
    }
}

@supports (animation-timeline: view()){
    .pa-scroll-reveal{
        opacity:1;
        transform:none;
        transition:none;
        animation:appear linear both;
        animation-timeline:view();
        animation-range:entry 0% cover 28%;
        will-change:auto;
    }
}

@media (prefers-reduced-motion: reduce){
    .pa-scroll-reveal,
    .pa-scroll-reveal.is-visible{
        opacity:1;
        transform:none;
        transition:none;
        animation:none;
    }
}