/* =========================================================
   Corplum — Design tokens (alignés sur l'app mobile)
   Thème sombre unique — Bleu nuit / Bordeaux / Doré
   ========================================================= */
:root{
  --bg-primary:#16223C;
  --bg-primary-deep:#101A30;
  --bg-surface:#141414;
  --bg-surface-elevated:#1C1C1C;

  --text-primary:#F7F1E7;
  --text-secondary:rgba(247,241,231,0.62);
  --text-muted:rgba(247,241,231,0.42);

  --border-subtle:rgba(247,241,231,0.08);
  --border-gold:rgba(201,162,93,0.35);

  --color-bordeaux:#8C1F3F;
  --color-rubis:#B23A3A;
  --color-emeraude:#1F6B4E;
  --color-dore:#C9A25D;
  --color-erreur-texte:#E2635A;
  --color-succes-texte:#4CAF7D;

  --font-display:'Cormorant Garamond', Georgia, serif;
  --font-body:'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --radius-s:6px;
  --radius-m:12px;
  --radius-l:20px;
  --container-w:1080px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:hidden;}
body{
  margin:0;
  background:var(--bg-primary);
  color:var(--text-primary);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.font-display{font-family:var(--font-display);font-weight:600;line-height:1.15;}
h1{font-size:clamp(2.2rem,5vw,3.4rem);}
h2{font-size:clamp(1.6rem,3.2vw,2.2rem);margin-top:0;}
h3{font-size:1.25rem;}
p{color:var(--text-secondary);}
a{color:var(--color-dore);text-decoration:none;}
a:hover,a:focus-visible{text-decoration:underline;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--color-dore);outline-offset:3px;
}
.container{max-width:var(--container-w);margin:0 auto;padding:0 24px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--color-dore);color:#16223C;padding:10px 16px;border-radius:0 0 8px 0;z-index:1000;}
.skip-link:focus{left:0;}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(16,26,48,0.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border-subtle);
}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:76px;}
.brand{display:flex;align-items:center;gap:10px;color:var(--text-primary);}
.brand img{height:34px;width:34px;}
.brand span{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.02em;}
.main-nav{display:flex;align-items:center;gap:28px;}
.main-nav a{color:var(--text-secondary);font-size:.95rem;}
.main-nav a:hover{color:var(--text-primary);}
.nav-toggle{display:none;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-s);color:var(--text-primary);padding:8px 10px;}
.lang-switch{display:flex;gap:2px;border:1px solid var(--border-gold);border-radius:999px;padding:2px;}
.lang-switch a{padding:5px 12px;border-radius:999px;font-size:.82rem;color:var(--text-secondary);}
.lang-switch a[aria-current="true"]{background:var(--color-dore);color:#16223C;font-weight:600;}
.lang-switch a:hover{text-decoration:none;color:var(--text-primary);}

@media(max-width:820px){
  .nav-toggle{display:inline-flex;}
  .main-nav{position:fixed;top:76px;left:0;right:0;height:calc(100vh - 76px);background:var(--bg-primary-deep);flex-direction:column;align-items:flex-start;padding:28px 24px;gap:20px;transform:translateX(100%);transition:transform .25s ease;overflow:auto;}
  .main-nav.open{transform:translateX(0);}
  .main-nav a{font-size:1.1rem;}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:14px 28px;font-family:var(--font-body);font-weight:600;font-size:1rem;border:1px solid transparent;cursor:pointer;transition:transform .15s ease, opacity .15s ease;}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--color-bordeaux);color:#fff;}
.btn-primary:hover{opacity:.92;text-decoration:none;}
.btn-ghost{background:transparent;color:var(--text-primary);border-color:var(--border-gold);}
.btn-ghost:hover{border-color:var(--color-dore);text-decoration:none;}
.btn[disabled]{opacity:.5;cursor:not-allowed;}

/* ---------- Hero ---------- */
.hero{padding:96px 0 72px;text-align:center;background:
  radial-gradient(circle at 50% -10%, rgba(201,162,93,0.14), transparent 60%);}
.hero .eyebrow{color:var(--color-dore);font-family:var(--font-display);font-style:italic;font-size:1.15rem;letter-spacing:.02em;display:block;margin-bottom:28px;}
.hero p.lead{max-width:640px;margin:20px auto 36px;font-size:1.1rem;}
.hero-mark{width:140px;height:140px;display:block;margin:0 auto 14px;}
.hero .badge{display:block;width:fit-content;margin:0 auto 28px;}
.hero h1{margin:0 0 6px;}

/* ---------- Sections ---------- */
section{padding:64px 0;}
section.alt{background:var(--bg-surface);}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:40px;}
@media(max-width:760px){.grid-3,.grid-2{grid-template-columns:1fr;}}
.card{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-l);padding:28px;}
.card h3{color:var(--color-dore);margin-top:0;}
.badge{display:inline-block;background:rgba(201,162,93,0.12);color:var(--color-dore);border:1px solid var(--border-gold);border-radius:999px;padding:4px 14px;font-size:.8rem;letter-spacing:.03em;text-transform:uppercase;}

/* ---------- Beta form ---------- */
.beta-form{max-width:480px;margin:0 auto;text-align:left;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-l);padding:32px;}
.beta-form label{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:6px;}
.beta-form input[type="email"]{width:100%;padding:13px 16px;border-radius:var(--radius-s);border:1px solid var(--border-subtle);background:var(--bg-primary-deep);color:var(--text-primary);font-size:1rem;margin-bottom:18px;}
.beta-form input[type="email"]:focus{border-color:var(--color-dore);}
.consent-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;}
.consent-row input[type="checkbox"]{margin-top:4px;width:18px;height:18px;accent-color:var(--color-dore);flex-shrink:0;}
.consent-row label{font-size:.85rem;color:var(--text-secondary);margin:0;}
.hp-field{position:absolute;left:-9999px;top:-9999px;}
.form-msg{margin-top:14px;font-size:.9rem;min-height:1.2em;}
.form-msg[data-state="success"]{color:var(--color-succes-texte);}
.form-msg[data-state="error"]{color:var(--color-erreur-texte);}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--border-subtle);padding:48px 0 32px;background:var(--bg-primary-deep);}
.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;margin-bottom:32px;}
.footer-cols h4{color:var(--text-primary);font-size:.9rem;margin:0 0 14px;}
.footer-cols a{display:block;color:var(--text-secondary);font-size:.9rem;padding:4px 0;}
.footer-cols a:hover{color:var(--color-dore);}
.footer-bottom{border-top:1px solid var(--border-subtle);padding-top:20px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;color:var(--text-muted);font-size:.8rem;}
@media(max-width:760px){.footer-cols{grid-template-columns:1fr;}}

/* ---------- Legal pages ---------- */
.legal-page{padding-top:56px;padding-bottom:80px;}
.legal-page .container{max-width:820px;}
.legal-page h2{margin-top:2.2em;color:var(--color-dore);}
.legal-page h3{margin-top:1.6em;}
.legal-page ul{color:var(--text-secondary);}
.legal-updated{color:var(--text-muted);font-size:.85rem;margin-bottom:40px;}
.todo-flag{background:rgba(178,58,58,0.12);border:1px dashed var(--color-erreur-texte);color:var(--color-erreur-texte);border-radius:var(--radius-s);padding:10px 14px;font-size:.85rem;margin:14px 0;}

/* ---------- Cookie banner ---------- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;max-width:640px;margin:0 auto;background:var(--bg-surface-elevated);border:1px solid var(--border-gold);border-radius:var(--radius-l);padding:20px 22px;box-shadow:0 12px 32px rgba(0,0,0,0.4);z-index:200;display:none;}
.cookie-banner.visible{display:block;}
.cookie-banner p{font-size:.88rem;margin:0 0 14px;}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-actions .btn{padding:10px 18px;font-size:.88rem;}

/* ---------- 404 ---------- */
.error-page{padding:120px 0;text-align:center;}
.error-page .code{font-family:var(--font-display);font-size:5rem;color:var(--color-dore);}

/* ---------- Misc ---------- */
.center{text-align:center;}
.mt-l{margin-top:48px;}
table.legal-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:.9rem;}
table.legal-table th,table.legal-table td{border:1px solid var(--border-subtle);padding:10px 12px;text-align:left;color:var(--text-secondary);}
table.legal-table th{color:var(--text-primary);background:var(--bg-surface-elevated);}
