/* ════════════════════════════════════════
   NOÛS LAB — Feuille de style principale
   ════════════════════════════════════════ */

:root {
  --bg:          #0c0c0b;
  --bg2:         #131311;
  --bg3:         #1a1a18;
  --ink:         #e8e4de;
  --ink-soft:    #9a9690;
  --ink-dim:     #5a5a56;
  --accent:      #5b8db8;
  --accent-warm: #b5956e;
  --border:      rgba(232,228,222,0.07);
  --border-s:    rgba(232,228,222,0.14);
  --sans:        'Inter', system-ui, sans-serif;
  --serif:       'Cormorant Garamond', Georgia, serif;
  --mono:        'JetBrains Mono', 'Courier New', monospace;
  --maxw:        1140px;
  --gap:         clamp(60px, 10vw, 120px);
  --pad:         clamp(20px, 5vw, 60px);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:17px; }
body {
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4 { font-family:var(--serif); font-weight:300; line-height:1.2; }
h1 { font-size:clamp(2.8rem,7vw,6rem); letter-spacing:-0.02em; }
h2 { font-size:clamp(1.8rem,4vw,3rem); letter-spacing:-0.01em; }
h3 { font-size:clamp(1.3rem,2.5vw,1.9rem); }
h4 { font-size:1.1rem; font-weight:400; }
p  { color:var(--ink-soft); font-weight:300; }
a  { color:inherit; text-decoration:none; }
em { font-style:italic; color:var(--ink); }
strong { font-weight:500; color:var(--ink); }

.container { max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }
section { padding:var(--gap) 0; }

.section-label {
  font-family:var(--mono);
  font-size:0.65rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ink-dim);
  margin-bottom:2rem;
  display:flex;
  align-items:center;
  gap:1rem;
}
.section-label::after { content:''; flex:0 0 40px; height:1px; background:var(--border-s); }

/* ── NAVIGATION ── */
nav {
  position:fixed;
  top:0; left:0; right:0;
  z-index:200;
  padding:18px 0;
  border-bottom:1px solid transparent;
  transition:all 0.4s ease;
}
nav.scrolled {
  background:rgba(12,12,11,0.93);
  border-bottom-color:var(--border);
  backdrop-filter:blur(14px);
}
.nav-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.nav-logo { font-family:var(--serif); font-size:1.1rem; letter-spacing:0.05em; color:var(--ink); }
.nav-logo span { color:var(--accent-warm); font-style:italic; }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a {
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
  transition:color 0.2s;
}
.nav-links a:hover, .nav-links a.active { color:var(--ink); }
.nav-cta {
  font-size:0.75rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border:1px solid var(--border-s);
  padding:7px 18px;
  color:var(--ink);
  transition:all 0.2s;
  border-radius:2px;
}
.nav-cta:hover { background:var(--ink); color:var(--bg); }
.nav-lang {
  font-family:var(--mono);
  font-size:0.65rem;
  letter-spacing:0.1em;
  color:var(--ink-dim);
  border:1px solid var(--border);
  padding:5px 12px;
  border-radius:2px;
  transition:all 0.2s;
}
.nav-lang:hover { color:var(--ink); border-color:var(--border-s); }
.nav-lang.active { color:var(--accent); border-color:var(--accent); }

/* ── BUTTONS ── */
.btn-primary {
  display:inline-block;
  padding:13px 30px;
  background:var(--accent);
  color:#fff;
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-radius:2px;
  transition:opacity 0.2s;
}
.btn-primary:hover { opacity:0.85; }
.btn-ghost {
  display:inline-block;
  padding:12px 30px;
  border:1px solid var(--border-s);
  color:var(--ink);
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border-radius:2px;
  transition:all 0.2s;
}
.btn-ghost:hover { background:var(--ink); color:var(--bg); }

/* ── REVEAL ANIMATIONS ── */
.reveal {
  opacity:0;
  transform:translateY(22px);
  transition:opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── PAGE HERO (inner pages) ── */
.page-hero {
  padding:140px 0 80px;
  border-bottom:1px solid var(--border);
}
.page-hero .eyebrow {
  font-family:var(--mono);
  font-size:0.65rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:1.5rem;
}
.page-hero h1 { margin-bottom:1.5rem; }
.page-hero .lead { font-family:var(--serif); font-style:italic; font-size:clamp(1rem,2vw,1.4rem); max-width:600px; }

/* ── FOOTER ── */
footer {
  background:var(--bg2);
  border-top:1px solid var(--border);
  padding:60px 0 40px;
}
.footer-top {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:4rem;
  padding-bottom:3rem;
  border-bottom:1px solid var(--border);
  margin-bottom:2.5rem;
}
.footer-logo { font-family:var(--serif); font-size:1.2rem; margin-bottom:0.8rem; }
.footer-desc { font-size:0.87rem; line-height:1.8; max-width:260px; }
.footer-col h5 {
  font-family:var(--mono);
  font-size:0.62rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ink-dim);
  margin-bottom:1rem;
}
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:0.55rem; }
.footer-col a { font-size:0.87rem; color:var(--ink-soft); transition:color 0.2s; }
.footer-col a:hover { color:var(--ink); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; }
.footer-quote { font-family:var(--serif); font-style:italic; font-size:0.95rem; color:var(--ink-soft); max-width:480px; }
.footer-quote cite { display:block; font-style:normal; font-family:var(--mono); font-size:0.62rem; letter-spacing:0.1em; color:var(--ink-dim); margin-top:0.4rem; }
.footer-copy { font-family:var(--mono); font-size:0.62rem; letter-spacing:0.08em; color:var(--ink-dim); }

/* ── COOKIE BANNER ── */
#nl-consent-bar {
  position:fixed;
  bottom:0; left:0; right:0;
  z-index:9999;
  background:rgba(13,13,12,0.97);
  border-top:1px solid var(--border-s);
  padding:16px 0;
  backdrop-filter:blur(10px);
}
.nl-bar-inner {
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--pad);
  display:flex;
  align-items:center;
  gap:2rem;
  flex-wrap:wrap;
}
.nl-bar-text {
  flex:1;
  font-size:0.85rem;
  line-height:1.6;
  color:rgba(232,228,222,0.7);
  min-width:200px;
}
.nl-bar-text a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.nl-bar-actions { display:flex; gap:0.8rem; flex-shrink:0; }
.nl-btn {
  padding:8px 20px;
  border-radius:2px;
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  cursor:pointer;
  border:1px solid var(--border-s);
  font-family:var(--sans);
  transition:all 0.2s;
}
.nl-btn-refuse { background:transparent; color:rgba(232,228,222,0.6); }
.nl-btn-refuse:hover { background:rgba(232,228,222,0.08); }
.nl-btn-accept { background:var(--accent); color:#fff; border-color:var(--accent); }
.nl-btn-accept:hover { opacity:0.85; }

/* ── MOBILE ── */
@media(max-width:900px){
  .footer-top { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .footer-bottom { flex-direction:column; gap:1.5rem; text-align:center; }
  .nav-links { display:none; }
}
@media(max-width:600px){
  .footer-top { grid-template-columns:1fr; }
  .nl-bar-inner { flex-direction:column; align-items:flex-start; gap:1rem; }
  .nl-bar-actions { width:100%; }
}
