/* Plum'art — styles communs aux pages d'erreur (404, 500). 
   Source: design valide erreur-4xx/5xx.html. Specifiques 404/500 inline dans chaque page. */
  :root{--navy:#17264A;--ivory:#FAF7F1;--sand:#EAD7B8;--gold:#C9A35A;--muted:#667085}
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    min-height:100vh;display:flex;flex-direction:column;
    background:#FFFFFF;
    font-family:"co-text","Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--navy);position:relative;overflow-x:hidden;
  }


  .error-main{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vw,48px);position:relative;z-index:2}
  .error-card{position:relative;width:100%;max-width:960px;text-align:center;
    animation:fadeUp 1s cubic-bezier(.22,.61,.36,1) both}

  .scene{position:relative;width:min(220px,58%);margin:0 auto}
  .scene .disc{position:absolute;inset:-14% 6%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(250,250,252,.55));box-shadow:0 30px 60px -30px rgba(23,38,74,.28);animation:haloPulse 9s ease-in-out infinite}
  .scene svg{position:relative;z-index:1;display:block;width:100%;height:auto}

  .badge{display:inline-flex;align-items:center;gap:9px;margin-top:clamp(22px,3vw,30px);padding:7px 16px;border-radius:999px;background:var(--ivory);border:1px solid rgba(201,163,90,.4)}
  .badge i{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:dotPulse 2.4s ease-in-out infinite}
  .badge span{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--navy)}

  h1{font-family:'co-text',sans-serif;font-weight:600;color:#0B2265;font-size:clamp(32px,5vw,52px);line-height:1.04;margin:clamp(16px,2.4vw,22px) 0 0;letter-spacing:-.015em;text-wrap:balance}
  .lead{font-size:clamp(15px,1.2vw,17px);line-height:1.66;color:var(--muted);margin:16px auto 0;max-width:46ch;text-wrap:pretty}


  .actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 22px;margin-top:clamp(22px,3vw,30px)}
  .btn{cursor:pointer;font-family:inherit;font-size:15px;font-weight:700;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border:1px solid transparent;transition:transform .2s ease,box-shadow .25s ease,background .25s ease}
  .btn-primary:active{transform:translateY(0)}
  .btn-ghost{color:var(--navy);background:#fff;border-color:rgba(23,38,74,.16);padding:15px 28px}
  .btn-ghost:hover{border-color:var(--gold);background:var(--ivory);transform:translateY(-2px)}
  .link-gold{position:relative;font-size:14.5px;font-weight:700;color:var(--navy);text-decoration:none;white-space:nowrap;padding-bottom:3px}
  .link-gold::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1.5px;background:var(--gold);transform:scaleX(.34);transform-origin:left;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
  .link-gold:hover::after{transform:scaleX(1)}

  .il-breathe{animation:ilBreathe 4.6s ease-in-out infinite}
  .il-star{animation:ilTwinkle 2.8s ease-in-out infinite}
  @keyframes ilBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
  @keyframes ilTwinkle{0%,100%{opacity:.25}50%{opacity:1}}
  @keyframes dotPulse{0%,100%{box-shadow:0 0 0 0 rgba(201,163,90,.45)}50%{box-shadow:0 0 0 5px rgba(201,163,90,0)}}
  @keyframes haloPulse{0%,100%{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}
  @keyframes fadeUp{from{transform:translateY(18px)}to{transform:translateY(0)}}

  @media (max-width:520px){.error-card{border-radius:26px}.actions .btn{flex:1 1 100%}}
  @media (prefers-reduced-motion:reduce){*{animation:none!important}}
