/* base.css — Reset + éléments partagés par TOUTES les pages (header, footer, conteneur)
   Dépend de tokens.css. Charger après tokens.css, avant tout le reste.
*/

html, body { margin:0; padding:0; }

body{
  font-family: var(--font-mono);
  background: var(--c-paper);
  color: var(--c-ink);
}

/* Reset neo-brutal (pages auth / app scopées body.neo) */
body.neo,
body.neo * ,
body.neo *::before,
body.neo *::after{
  box-sizing: border-box;
  font-family: var(--font-mono);
}

body.neo{
  margin:0;
  min-height:100vh;
  position:relative;
  background:
    radial-gradient(circle at 12% 0%, rgba(255,47,157,.14), transparent 32rem),
    radial-gradient(circle at 90% 6%, rgba(41,230,230,.12), transparent 28rem),
    var(--mv-black);
  color:var(--mv-cream);
  font-family: var(--font-mono);
  overflow-x:hidden;
}

body.neo::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at 50% 0%,#000,transparent 75%);
}

/* ===== Header (variante blog) ===== */
.b-header{
  border-bottom: var(--b-mid);
  background: var(--c-white);
  box-shadow: var(--sh-xs);
  width: 100vw;
}

.b-nav{
  max-width: 980px;
  margin: 0 auto;
  display:flex;
  gap: var(--sp-10);
  align-items:center;
  flex-wrap: wrap;
  width: 100vw;
}

.b-nav a{
  display: inline-block;
  text-decoration: none !important ;
  font-weight: 800;
  border: var(--b-mid);
  background: var(--c-white);
  box-shadow: var(--sh-s);
  padding: var(--sp-8) var(--sp-12);
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

/* ===== Header (partagé accueil + app / auth) ===== */
body.neo .site-header{
  width:min(1180px,calc(100% - 32px));
  margin:18px auto 0;
  padding:10px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  background:rgba(13,6,32,.72);
  border:1px solid var(--mv-line);
  border-radius:var(--mv-r-l);
  box-shadow:var(--mv-glow-soft);
  backdrop-filter:blur(14px);
  position: sticky;
  top: 12px;
  z-index: 20;
}

body.neo .logo-link,
body.neo .site-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--mv-cream);
}

body.neo .logo-img{
  height:72px;
  width:auto;
  display:block;
}

body.neo .site-brand__mark{
  width:42px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:var(--mv-grad-btn);
  box-shadow:var(--mv-glow-pink);
  font-weight:900;
  font-size:.8rem;
}

body.neo .site-brand__text{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}
body.neo .site-brand__text strong{
  font-size:1rem;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}
body.neo .site-brand__text span{
  font-size:.63rem;
  color:var(--mv-mist);
  text-transform:none;
  letter-spacing:.01em;
}

/* Navigation en "pilules" avec icône, comme sur la maquette */
body.neo .site-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
body.neo .site-nav a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 14px;
  color:var(--mv-mist);
  text-decoration:none;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
  border:1px solid transparent;
  border-radius:var(--mv-r-pill);
  transition:color .15s ease, border-color .15s ease, background-color .15s ease;
}
body.neo .site-nav a svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
body.neo .site-nav a:hover{ color:var(--mv-cream); background:rgba(255,255,255,.05); }
body.neo .site-nav a.is-active{
  color:var(--mv-cream);
  border-color:var(--mv-pink);
  background:rgba(255,47,157,.1);
  box-shadow:var(--mv-glow-pink);
}

/* ===== Conteneur de page (app / auth) ===== */
body.neo #main-content,
body.neo main{
  width:min(1180px, calc(100% - 32px));
  max-width:1180px;
  margin:0 auto;
  padding:24px 16px;
  box-sizing:border-box;
}

body.neo h1{
  text-align:center;
  margin: 14px 0 16px;
  color:var(--mv-cream);
  font-size: var(--fs-26, 26px);
  text-transform: uppercase;
  letter-spacing: .6px;
}

body.neo a{
  color:var(--mv-cyan-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.neo [hidden]{ display:none !important; }

/* =========================
   FOOTER Miami Vice (accueil + app / auth)
   Sur les pages sans body.neo (ex. blog), le footer garde
   la variante ci-dessous à la fin du fichier (.site-footer par défaut).
========================= */

body.neo .site-footer{
  width:100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top:54px;
  color:var(--mv-cream);
  background:linear-gradient(150deg,var(--mv-black) 0%,#1c0b45 55%,#082638 100%);
  border-top:1px solid var(--mv-line);
}

body.neo .footer-inner{
  max-width:1120px;
  margin:0 auto;
  padding:40px 20px;
  display:flex;
  flex-wrap:wrap;
  gap:30px;
}

body.neo .footer-col{
  flex:1 1 200px;
}

body.neo .footer-col h3,
body.neo .footer-col h4{
  margin-bottom:12px;
  color:var(--mv-cyan-2);
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.02em;
}

body.neo .footer-col p{
  margin:0;
  color:var(--mv-mist);
  line-height:1.6;
}

body.neo .footer-col ul{
  list-style:none;
  padding:0;
  margin:0;
}

body.neo .footer-col li{
  margin-bottom:8px;
}

body.neo .footer-col a{
  text-decoration:none;
  color:var(--mv-mist);
  font-weight:700;
}

body.neo .footer-col a:hover{
  color:var(--mv-pink-2);
  text-decoration:underline;
}

body.neo .footer-bottom{
  border-top:1px solid var(--mv-line);
  padding:14px 20px;
  text-align:center;
  color:var(--mv-mist);
  font-weight:700;
  font-size:.78rem;
  background:rgba(0,0,0,.25);
}

/* Footer par défaut (pages sans body.neo, ex. blog) — inchangé */
.site-footer{
  width:100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background:#4fb2c6;
  border-top:4px solid #000;
  margin-top:40px;
}

.footer-inner{
  max-width:1000px;
  margin:0 auto;
  padding:30px 20px;
  display:flex;
  flex-wrap:wrap;
  gap:30px;
}

.footer-col{
  flex:1 1 200px;
}

.footer-col h3,
.footer-col h4{
  margin-bottom:10px;
  text-transform:uppercase;
  font-weight:900;
}

.footer-col p{
  margin:0;
}

.footer-col ul{
  list-style:none;
  padding:0;
  margin:0;
}

.footer-col li{
  margin-bottom:6px;
}

.footer-col a{
  text-decoration:none;
  color:#000;
  font-weight:700;
}

.footer-col a:hover{
  text-decoration:underline;
}

.footer-bottom{
  border-top:4px solid #000;
  padding:12px 20px;
  text-align:center;
  font-weight:900;
  background:#3aa8ff;
}

/* ===== Footer (variante blog) ===== */
.b-footer{
  max-width: 980px;
  margin: 0 auto;
  padding: var(--sp-16);
}

.b-footer a{
  padding: var(--sp-8) var(--sp-12);
  transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.b-footer a:hover{
  transform: translateX(4px);
  box-shadow: var(--sh-m);
  background: var(--c-accent);
}

footer .b-link{
  margin-left: var(--sp-8);
}

/* ===== Responsive ===== */
@media (max-width: 768px){
  body.neo .site-nav{ display:none; }
}

@media (max-width: 600px){
  body.neo .logo-img{ height: 62px; }
  body.neo #main-content,
  body.neo main{ padding: 12px; }
  body.neo .site-header{ width:calc(100% - 20px); margin-top:10px; top:8px; }
}
