/* =========================================================
   P14 Hub — Base
   Reset léger + typographie fondamentale
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}

body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:1.6;
  color:var(--text);
  background-color:var(--bg-deep);
  background-image:
    radial-gradient(120% 65% at 50% -8%, rgba(44,92,136,.26), transparent 55%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* ---- Mode clair : fond doux, lumineux, non délavé ---- */
:root.light body{
  background-color:var(--bg-deep);
  background-image:
    radial-gradient(115% 60% at 50% -10%, rgba(206,26,99,.07), transparent 58%),
    radial-gradient(90% 70% at 100% 0%, rgba(72,120,162,.10), transparent 60%),
    linear-gradient(180deg,#F3F8FC 0%,#E9F1F8 100%);
}
/* ---- Grain film (texture globale) ---- */
body::after{
  content:"";position:fixed;inset:0;z-index:60;pointer-events:none;
  mix-blend-mode:overlay;opacity:.10;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
:root.light body::after{opacity:.035;}
@media (prefers-reduced-motion:reduce){body::after{opacity:.05;}}

h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.04;
  letter-spacing:var(--tracking-tight);
  margin:0;
}
h1{font-size:var(--text-5xl);font-weight:700;}
h2{font-size:var(--text-3xl);}
h3{font-size:var(--text-2xl);}
h4{font-size:var(--text-xl);}

p{margin:0;text-wrap:pretty;}

a{color:inherit;text-decoration:none;}

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

/* ---- Étiquette / kicker mono ---- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  letter-spacing:var(--tracking-mono);
  text-transform:uppercase;
  color:var(--accent);
}

.mono{font-family:var(--font-mono);}
.muted{color:var(--text-muted);}
.secondary{color:var(--text-secondary);}

/* ---- Utilitaires de mise en page ---- */
.container{max-width:1200px;margin-inline:auto;padding-inline:var(--space-6);}
.stack{display:flex;flex-direction:column;}
.row{display:flex;align-items:center;}
.gap-2{gap:var(--space-2);}
.gap-4{gap:var(--space-4);}
.gap-6{gap:var(--space-6);}
.wrap{flex-wrap:wrap;}

::selection{background:var(--accent);color:var(--on-accent);}

/* ---- Scrollbar discrète ---- */
*{scrollbar-width:thin;scrollbar-color:var(--blue-500) transparent;}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:var(--blue-500);border-radius:99px;border:3px solid var(--bg-deep);}
