/*=========================================================
RJJD
Revue Juridique JusDivinum
Design System v1.0
=========================================================*/



/*=========================================================
VARIABLES
=========================================================*/

:root{

    /* Couleurs */

    --primary:#0A2E5C;
    --primary-light:#164E93;
    --primary-dark:#051C39;

    --secondary:#B08D57;
    --secondary-light:#D5B67A;

    --accent:#3D7EFF;

    --success:#2E8B57;
    --warning:#E0A800;
    --danger:#C0392B;

    --white:#FFFFFF;

    --background:#F4F7FB;

    --surface:#FFFFFF;

    --surface-alt:#EDF2F8;

    --text:#1E293B;

    --text-light:#64748B;

    --border:#D8E2EC;



    /* Ombres */

    --shadow-xs:

        0 2px 6px rgba(0,0,0,.05);

    --shadow-sm:

        0 6px 18px rgba(0,0,0,.08);

    --shadow-md:

        0 18px 45px rgba(0,0,0,.10);

    --shadow-lg:

        0 30px 80px rgba(0,0,0,.14);



    /* Rayons */

    --radius-sm:10px;

    --radius:18px;

    --radius-lg:28px;

    --radius-xl:40px;



    /* Largeurs */

    --container:1380px;



    /* Animations */

    --transition:.35s ease;

}
/*=========================================================
RESET
=========================================================*/

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Inter",sans-serif;

    background:var(--background);

    color:var(--text);

    overflow-x:hidden;

    line-height:1.7;

    -webkit-font-smoothing:antialiased;

}

img{

    display:block;

    max-width:100%;

}

a{

    color:inherit;

    text-decoration:none;

}

button{

    font:inherit;

    cursor:pointer;

    border:none;

    background:none;

}
/*=========================================================
TYPOGRAPHIE
=========================================================*/

h1{

    font-size:clamp(3rem,7vw,5.8rem);

    font-weight:800;

    line-height:1.05;

}

h2{

    font-size:clamp(2rem,5vw,3.4rem);

    font-weight:800;

}

h3{

    font-size:1.35rem;

    font-weight:700;

}

p{

    color:var(--text-light);

    font-size:1.06rem;

}
/*=========================================================
CONTAINER
=========================================================*/

.container{

    width:min(

        var(--container),

        calc(100% - 70px)

    );

    margin:auto;

}
/*=========================================================
SECTIONS
=========================================================*/

.section{

    padding:120px 0;

    position:relative;

}

.section-header{

    text-align:center;

    max-width:850px;

    margin:0 auto 70px;

}

.section-tag{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 20px;

    border-radius:100px;

    background:#E8EEF8;

    color:var(--primary);

    font-weight:700;

    margin-bottom:22px;

    font-size:.9rem;

}

.section-header h2{

    margin-bottom:22px;

}

.section-header p{

    font-size:1.1rem;

}
/*=========================================================
BOUTONS
=========================================================*/

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:12px;

    padding:16px 34px;

    border-radius:100px;

    font-weight:700;

    transition:var(--transition);

}

.btn-primary{

    background:var(--primary);

    color:white;

    box-shadow:var(--shadow-sm);

}

.btn-primary:hover{

    transform:translateY(-4px);

    background:var(--primary-light);

}

.btn-secondary{

    background:white;

    border:1px solid var(--border);

}

.btn-secondary:hover{

    transform:translateY(-4px);

    box-shadow:var(--shadow-sm);

}
/*=========================================================
HERO
=========================================================*/

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    background:

    linear-gradient(

        135deg,

        #061B38 0%,

        #0A2E5C 40%,

        #143E72 100%

    );

}
/*=========================================================
HERO BACKGROUND
=========================================================*/

.hero-background{

    position:absolute;

    inset:0;

    overflow:hidden;

}

.hero-grid{

    position:absolute;

    inset:0;

    background:

    linear-gradient(

        rgba(255,255,255,.04) 1px,

        transparent 1px

    ),

    linear-gradient(

        90deg,

        rgba(255,255,255,.04) 1px,

        transparent 1px

    );

    background-size:60px 60px;

    opacity:.25;

}
.hero-circle{

    position:absolute;

    border-radius:50%;

    filter:blur(80px);

    opacity:.35;

}

.circle-1{

    width:550px;

    height:550px;

    background:#3D7EFF;

    top:-150px;

    left:-120px;

}

.circle-2{

    width:450px;

    height:450px;

    background:#B08D57;

    bottom:-120px;

    right:-80px;

}

.circle-3{

    width:280px;

    height:280px;

    background:#6EA8FF;

    top:50%;

    left:50%;

    transform:translate(-50%,-50%);

}
.hero-container{

    width:min(

        var(--container),

        calc(100% - 70px)

    );

    margin:auto;

    display:grid;

    grid-template-columns:

        1.15fr

        .85fr;

    gap:80px;

    align-items:center;

    position:relative;

    z-index:5;

}
.hero-badge{

    display:inline-flex;

    align-items:center;

    gap:12px;

    padding:12px 22px;

    border-radius:100px;

    color:white;

    background:

    rgba(255,255,255,.10);

    backdrop-filter:blur(18px);

    border:

    1px solid

    rgba(255,255,255,.15);

    margin-bottom:28px;

    font-weight:600;

}
.hero h1{

    color:white;

    margin-bottom:25px;

}

.hero h1 span{

    color:#D7B97A;

}
.hero p{

    color:

    rgba(

        255,

        255,

        255,

        .82

    );

    max-width:650px;

    font-size:1.18rem;

    margin-bottom:45px;

}
.hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}
.hero-cover{

    display:flex;

    justify-content:center;

    align-items:center;

    perspective:1800px;

}
.journal-cover{

    position:relative;

    width:350px;

    transform:

        rotateY(-18deg)

        rotateX(8deg);

    transition:.6s;

}

.journal-cover:hover{

    transform:

        rotateY(-6deg)

        rotateX(2deg)

        translateY(-10px);

}
.journal-cover img{

    width:100%;

    border-radius:24px;

    box-shadow:

    0 40px 90px

    rgba(

        0,

        0,

        0,

        .45

    );

}
.cover-glow{

    position:absolute;

    inset:-30px;

    background:

    radial-gradient(

        circle,

        rgba(

            61,

            126,

            255,

            .55

        ),

        transparent 70%

    );

    filter:blur(50px);

    z-index:-1;

}
@keyframes floatCover{

    0%{

        transform:

        translateY(0);

    }

    50%{

        transform:

        translateY(-18px);

    }

    100%{

        transform:

        translateY(0);

    }

}

.journal-cover{

    animation:

    floatCover

    7s

    ease-in-out

    infinite;

}
/*=========================================================
NAVBAR
=========================================================*/

#header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:10000;

    transition:.45s ease;

}

.navbar{

    width:100%;

    padding:22px 0;

    transition:.45s ease;

}
.navbar-container{

    width:min(

        var(--container),

        calc(100% - 60px)

    );

    margin:auto;

    display:flex;

    justify-content:space-between;

    align-items:center;

}
.logo{

    display:flex;

    align-items:center;

    gap:18px;

}

.logo-icon{

    width:58px;

    height:58px;

    border-radius:18px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:

        rgba(255,255,255,.10);

    backdrop-filter:blur(18px);

    color:white;

    font-size:1.45rem;

    border:

        1px solid

        rgba(255,255,255,.15);

}

.logo-text{

    display:flex;

    flex-direction:column;

}

.logo-title{

    color:white;

    font-weight:800;

    font-size:1.3rem;

    letter-spacing:1px;

}

.logo-subtitle{

    color:

        rgba(255,255,255,.72);

    font-size:.82rem;

}
.navigation{

    display:flex;

    gap:38px;

    align-items:center;

}

.navigation a{

    color:white;

    font-weight:600;

    position:relative;

    transition:.3s;

}
.navigation a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:#D5B67A;

    transition:.35s;

}

.navigation a:hover::after{

    width:100%;

}

.navigation a:hover{

    color:#D5B67A;

}
.navbar-actions{

    display:flex;

    gap:14px;

}
.search-button,

.menu-button{

    width:52px;

    height:52px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    color:white;

    background:

        rgba(255,255,255,.10);

    backdrop-filter:blur(18px);

    border:

        1px solid

        rgba(255,255,255,.15);

    transition:.35s;

}

.search-button:hover,

.menu-button:hover{

    transform:translateY(-4px);

    background:

        rgba(255,255,255,.18);

}
/*=========================================================
NAVBAR ACTIVE
=========================================================*/

#header.scrolled{

    background:

        rgba(

            255,

            255,

            255,

            .88

        );

    backdrop-filter:blur(18px);

    box-shadow:var(--shadow-sm);

}

#header.scrolled .navbar{

    padding:12px 0;

}
#header.scrolled .logo-title,

#header.scrolled .navigation a,

#header.scrolled .logo-icon,

#header.scrolled .search-button,

#header.scrolled .menu-button{

    color:var(--primary);

}

#header.scrolled .logo-subtitle{

    color:var(--text-light);

}

#header.scrolled .logo-icon,

#header.scrolled .search-button,

#header.scrolled .menu-button{

    background:white;

    border:

        1px solid

        var(--border);

}
/*=========================================================
PROGRESS BAR
=========================================================*/

#progressBar{

    position:fixed;

    top:0;

    left:0;

    width:0;

    height:4px;

    z-index:20000;

    background:

        linear-gradient(

            90deg,

            #3D7EFF,

            #D5B67A

        );

    transition:width .08s linear;

}
/*=========================================================
REVEAL
=========================================================*/

.section,

.statistics,

.hero{

    opacity:0;

    transform:

        translateY(60px);

    transition:

        .9s ease;

}

.section.visible,

.statistics.visible,

.hero.visible{

    opacity:1;

    transform:

        translateY(0);

}
.navigation a.active{

    color:#D5B67A;

}

.navigation a.active::after{

    width:100%;

}
.journal-cover{

    transform-style:preserve-3d;

    will-change:transform;

}
/*=========================================================
ARTICLE CARD
=========================================================*/

.article-card{

    background:white;

    border-radius:24px;

    padding:35px;

    border:1px solid var(--border);

    transition:.4s ease;

    position:relative;

    overflow:hidden;

}

.article-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            120deg,

            transparent,

            rgba(255,255,255,.35),

            transparent

        );

    transform:translateX(-120%);

    transition:.8s;

}

.article-card:hover::before{

    transform:translateX(120%);

}

.article-card:hover{

    transform:

        translateY(-10px);

    box-shadow:var(--shadow-lg);

}
.articles-grid{

    display:grid;

    grid-template-columns:

        repeat(

            auto-fit,

            minmax(370px,1fr)

        );

    gap:35px;

}
.article-keywords{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    margin-top:25px;

}
.keyword{

    padding:8px 18px;

    border-radius:100px;

    background:#EDF4FF;

    color:var(--primary);

    font-size:.82rem;

    font-weight:600;

}
.statistics{

    margin-top:-80px;

    position:relative;

    z-index:50;

}
.statistics-container{

    width:min(

        var(--container),

        calc(100% - 70px)

    );

    margin:auto;

    display:grid;

    grid-template-columns:

        repeat(4,1fr);

    gap:30px;

}
.stat-card{

    background:white;

    border-radius:24px;

    padding:40px;

    text-align:center;

    box-shadow:var(--shadow-sm);

    transition:.35s;

}
.stat-card:hover{

    transform:translateY(-8px);

}
.stat-icon{

    width:74px;

    height:74px;

    margin:auto;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    background:#EDF4FF;

    color:var(--primary);

    font-size:1.6rem;

    margin-bottom:22px;

}
