/* Page 404 — extrait en V29. */

.gs-404-wrap{
    width:min(860px,calc(100vw - 32px));
    margin:0 auto;
    padding:48px 0 80px;
    text-align:center;
}

/* Dossier classifié */
.gs-404-dossier{
    position:relative;
    display:inline-block;
    border:.5px solid rgba(196,18,48,.28);
    border-radius:20px;
    background:
        radial-gradient(circle at 50% 0%,rgba(196,18,48,.10),transparent 52%),
        linear-gradient(160deg,#121215,#06060a 80%);
    padding:40px 36px 36px;
    margin-bottom:32px;
    max-width:480px;
    overflow:hidden;
    box-shadow:0 32px 80px rgba(0,0,0,.55);
}

/* Grille de fond */
.gs-404-dossier::before{
    content:'';
    position:absolute;inset:0;
    background-image:
        linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);
    background-size:36px 36px;
    pointer-events:none;
}

/* Barre de statut top */
.gs-404-topbar{
    position:absolute;top:0;left:0;right:0;
    height:3px;
    background:linear-gradient(90deg,#C41230,#7A0C1B 60%,transparent);
}

/* Badge ACCÈS REFUSÉ */
.gs-404-badge{
    display:inline-flex;
    align-items:center;gap:7px;
    font-family:'Outfit','Segoe UI',system-ui,sans-serif;
    font-size:10px;font-weight:700;letter-spacing:.22em;
    text-transform:uppercase;
    color:rgba(196,18,48,.90);
    border:.5px solid rgba(196,18,48,.28);
    background:rgba(196,18,48,.08);
    padding:5px 10px;border-radius:4px;
    margin-bottom:20px;
    position:relative;z-index:1;
}

/* Code erreur */
.gs-404-code{
    font-family:'Bebas Neue',Impact,Arial Narrow,sans-serif;
    font-size:clamp(80px,18vw,120px);
    line-height:1;
    letter-spacing:.04em;
    color:#fff;
    position:relative;z-index:1;
    text-shadow:0 0 80px rgba(196,18,48,.20);
    margin-bottom:4px;
}

/* Sous-titre */
.gs-404-title{
    font-family:'Bebas Neue',Impact,Arial Narrow,sans-serif;
    font-size:clamp(22px,5vw,32px);
    letter-spacing:.04em;
    font-weight:400;
    color:rgba(255,255,255,.65);
    position:relative;z-index:1;
    margin-bottom:16px;
}

/* Description */
.gs-404-desc{
    font-family:'Outfit','Segoe UI',system-ui,sans-serif;
    font-size:14px;font-weight:300;line-height:1.68;
    color:rgba(240,238,232,.48);
    position:relative;z-index:1;
    max-width:340px;margin:0 auto;
}

/* Ligne de séparation */
.gs-404-sep{
    width:48px;height:.5px;
    background:rgba(196,18,48,.40);
    margin:20px auto;
    position:relative;z-index:1;
}

/* Actions */
.gs-404-actions{
    display:flex;flex-direction:column;gap:10px;
    position:relative;z-index:1;
}

.gs-404-btn{
    display:flex;align-items:center;justify-content:center;gap:8px;
    height:44px;padding:0 20px;border-radius:10px;
    font-family:'Outfit','Segoe UI',system-ui,sans-serif;
    font-size:13.5px;font-weight:700;letter-spacing:.03em;
    text-decoration:none;
    transition:transform .18s ease,box-shadow .18s ease,background .15s;
}

.gs-404-btn.primary{
    background:#C41230;color:#fff;
    box-shadow:0 10px 28px rgba(196,18,48,.25);
}
.gs-404-btn.primary:hover{
    background:#d41535;
    box-shadow:0 16px 36px rgba(196,18,48,.36);
    transform:translateY(-2px);
}

.gs-404-btn.secondary{
    background:rgba(255,255,255,.055);
    border:.5px solid rgba(255,255,255,.12);
    color:rgba(240,238,232,.80);
}
.gs-404-btn.secondary:hover{
    background:rgba(255,255,255,.09);
    border-color:rgba(255,255,255,.20);
    transform:translateY(-2px);
}

/* Liens rapides en dessous */
.gs-404-links{
    display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
    margin-top:24px;
}
.gs-404-link{
    font-family:'Outfit','Segoe UI',system-ui,sans-serif;
    font-size:12px;font-weight:500;
    padding:7px 14px;border-radius:7px;
    border:.5px solid rgba(255,255,255,.10);
    color:rgba(255,255,255,.45);
    text-decoration:none;
    transition:color .16s,border-color .16s;
}
.gs-404-link:hover{
    color:rgba(255,255,255,.80);
    border-color:rgba(255,255,255,.24);
}

/* Animation entrée */
@media(prefers-reduced-motion:no-preference){
    .gs-404-dossier{
        animation:gs404in .55s cubic-bezier(.2,.8,.2,1) both;
    }
    .gs-404-links{
        animation:gs404in .45s cubic-bezier(.2,.8,.2,1) .25s both;
    }
    @keyframes gs404in{
        from{opacity:0;transform:translateY(18px)}
        to{opacity:1;transform:translateY(0)}
    }
}

/* Responsive */
@media(max-width:480px){
    .gs-404-dossier{padding:28px 20px 24px}
    .gs-404-wrap{padding:32px 0 60px}
}
