/* ==========================================================================
   La Forge des Légendes — feuille de style partagée
   Source de vérité : design_handoff_forge_des_legendes/design/forge-des-legendes.dc.html
   Polices chargées via <link> Google Fonts dans le <head> de chaque page
   (Cinzel 500/600/700, Cormorant Garamond 400-700, JetBrains Mono 400/500).
   ========================================================================== */

:root{
  --bg:#0d0a08;
  --bg-footer:rgba(9,7,6,.9);
  --surface:rgba(23,18,14,.55);
  --surface-strong:rgba(23,18,14,.7);
  --accent:#ff8a2b;
  --accent-light:#ffb04a;
  --accent-dark:#c9500d;
  --title:#fbeacf;
  --text:#c9b49b;
  --muted:#9d8b78;
  --faint:#7d6a58;
  --kicker:#c98d4e;
  --kicker-dark:#a06b32;
  --on-accent:#190d04;
  --border:rgba(255,138,43,.16);
  --border-soft:rgba(255,138,43,.1);
  --border-strong:rgba(255,138,43,.4);
  --border-field:rgba(255,180,110,.28);
}

/* --------------------------------------------------------------------------
   Reset minimal
   -------------------------------------------------------------------------- */

*,*::before,*::after{ box-sizing:border-box; }

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

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Cormorant Garamond', Georgia, serif;
  min-height:100vh;
  overflow-x:hidden;
}

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

a{ color:var(--accent-light); text-decoration:none; }
a:hover{ color:var(--accent); }

button{ font:inherit; }

::selection{ background:#ff7a1a; color:#160f09; }

/* --------------------------------------------------------------------------
   Typographie
   -------------------------------------------------------------------------- */

h1,h2,h3{
  font-family:'Cinzel', serif;
  margin:0;
  color:var(--title);
}

/* Titre héro de la page d'accueil */
.hero h1,
.h1-hero{
  font-size:40px;
  line-height:1.14;
  font-weight:500;
  color:var(--title);
  text-shadow:0 0 50px rgba(255,122,26,.35);
  margin:0 0 26px;
}

/* Titre H1 des pages secondaires (Établi, Tarifs, Bêta) */
.h1-page{
  font-size:56px;
  font-weight:600;
  color:var(--title);
  margin:0 0 18px;
}

.h2{
  font-size:44px;
  line-height:1.12;
  font-weight:600;
  color:#f8e7cc;
  margin:0 0 22px;
}

.h3{
  font-size:32px;
  font-weight:600;
  color:#f6e3c6;
  margin:0 0 16px;
}

.card-title{
  font-family:'Cinzel', serif;
  font-size:23px;
  color:#f2dcbc;
  margin:0 0 12px;
}
.card-title.lg{ font-size:28px; }

.lede{
  font-size:20px;
  line-height:1.6;
  color:#a9977f;
  text-wrap:pretty;
  margin:0;
}
.lede.lg{ font-size:23px; color:var(--text); }

p,.body-text{
  font-size:17px;
  line-height:1.6;
  color:var(--text);
  margin:0;
}
.body-text.lg{ font-size:19px; }

.mono-label{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.14em;
  color:var(--muted);
}

/* --------------------------------------------------------------------------
   Structure
   -------------------------------------------------------------------------- */

.wrap{
  max-width:1280px;
  margin:0 auto;
  padding:0 40px;
}

.section{
  padding:110px 40px;
}
.section.tight{ padding-top:0; }
.section.no-top-pad{ padding-top:0; }

/* --------------------------------------------------------------------------
   Kicker
   -------------------------------------------------------------------------- */

.kicker{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.34em;
  color:var(--kicker);
  text-transform:uppercase;
  margin-bottom:20px;
}
.kicker-hero{
  font-size:11px;
  letter-spacing:.42em;
  margin-bottom:28px;
}

/* --------------------------------------------------------------------------
   Boutons
   -------------------------------------------------------------------------- */

.btn-primary{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  letter-spacing:.16em;
  padding:15px 30px;
  border-radius:9px;
  border:1px solid rgba(255,138,43,.55);
  background:linear-gradient(180deg,#ff8a2b,#c9500d);
  color:var(--on-accent);
  cursor:pointer;
  font-weight:500;
  box-shadow:0 6px 20px rgba(255,122,26,.28);
  transition:filter .15s ease;
  display:inline-block;
  text-align:center;
}
.btn-primary:hover{ filter:brightness(1.12); }
.btn-primary.sm{
  font-size:11px;
  padding:10px 18px;
  border-radius:8px;
}

.btn-ghost{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  letter-spacing:.16em;
  padding:15px 30px;
  border-radius:9px;
  border:1px solid var(--border-field);
  background:rgba(255,255,255,.03);
  color:#e8d3b6;
  cursor:pointer;
  transition:border-color .15s ease;
  display:inline-block;
  text-align:center;
}
.btn-ghost:hover{ border-color:rgba(255,180,110,.6); }

.btn-row{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}

/* --------------------------------------------------------------------------
   Cartes
   -------------------------------------------------------------------------- */

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  transition:border-color .15s ease;
}
.card:hover{ border-color:var(--border-strong); }

/* --------------------------------------------------------------------------
   Header / navigation
   -------------------------------------------------------------------------- */

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px 40px;
  background:rgba(13,10,8,.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}

.site-header .brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.site-header .brand img{
  height:34px;
  width:auto;
  filter:drop-shadow(0 0 12px rgba(255,122,26,.35));
}

.site-nav{
  display:flex;
  align-items:center;
  gap:6px;
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.16em;
}

.site-nav a,
.site-nav button{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.16em;
  padding:9px 15px;
  border-radius:7px;
  cursor:pointer;
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  text-decoration:none;
  display:inline-block;
}

.site-nav a.active,
.site-nav a[aria-current="page"]{
  border-color:var(--border-strong);
  background:rgba(255,138,43,.1);
  color:var(--accent);
}

.header-cta{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.16em;
  padding:10px 18px;
  border-radius:8px;
  border:1px solid rgba(255,138,43,.5);
  background:linear-gradient(180deg,#ff8a2b,#d4560f);
  color:#1a0e05;
  cursor:pointer;
  font-weight:500;
  box-shadow:0 6px 20px rgba(255,122,26,.28);
  transition:filter .15s ease;
  text-decoration:none;
  display:inline-block;
}
.header-cta:hover{ filter:brightness(1.12); color:#1a0e05; }

/* Burger (masqué en desktop) */
#burger{
  display:none;
  background:transparent;
  border:none;
  cursor:pointer;
  padding:8px;
  flex-direction:column;
  gap:5px;
}
#burger span{
  display:block;
  width:22px;
  height:2px;
  background:var(--accent);
  border-radius:2px;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.hero{
  position:relative;
  /* Premier écran complet : l'illustration plein cadre, le contenu centré,
     et le bandeau des 4 piliers posé en bas — tout visible sans scroller. */
  min-height:calc(100svh - 64px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-bottom:1px solid rgba(255,138,43,.14);
}

.hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  /* Illustration panoramique 1.89:1 ≈ ratio du hero : recadrage minime.
     Léger biais vers le haut pour ne jamais couper les visages. */
  object-position:50% 42%;
  opacity:.55;
}

.hero-veil{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 88%, rgba(255,122,26,.26), transparent 58%),
    /* Voile allégé en haut par rapport au prototype : son opacité de 0.97
       servait à masquer l'ancien titre peint dans l'illustration, disparu
       depuis. On laisse voir le groupe autour de l'enclume. */
    linear-gradient(180deg, rgba(13,10,8,.55) 0%, rgba(13,10,8,.45) 30%, rgba(13,10,8,.55) 62%, rgba(13,10,8,.96) 100%);
}

/* Diagnostic express IA locale (page Tarifs) */
.ia-config{
  margin-top:56px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  padding:44px 40px;
}
.ia-selects{
  display:flex;
  gap:24px;
  justify-content:center;
  flex-wrap:wrap;
}
.ia-selects label{
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1 1 240px;
  max-width:320px;
}
.ia-selects .mono-label{ color:var(--kicker); }
.ia-selects select{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  padding:14px 16px;
  border-radius:9px;
  border:1px solid var(--border-field);
  background:#171310;
  color:#efe0cc;
  outline:none;
  cursor:pointer;
}
.ia-selects select:focus{ border-color:var(--accent); }
.ia-verdict{
  margin:28px auto 0;
  max-width:640px;
  border:1px solid var(--border-strong);
  border-radius:12px;
  padding:24px 28px;
  background:rgba(255,138,43,.06);
}
.ia-verdict-title{
  font-family:'Cinzel', serif;
  font-size:20px;
  color:var(--accent-light);
  margin-bottom:8px;
}

/* Bouton retour en haut de page */
.back-top{
  position:fixed;
  right:26px;
  bottom:26px;
  z-index:45;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid var(--border-strong);
  background:rgba(23,18,14,.85);
  backdrop-filter:blur(6px);
  color:var(--accent-light);
  font-size:19px;
  cursor:pointer;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease, background .2s ease;
}
.back-top.on{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.back-top:hover{
  background:rgba(255,138,43,.18);
}

/* Lightbox (zoom des captures) */
.zoomable{ cursor:zoom-in; }
.lightbox[hidden]{ display:none; } /* sinon display:flex écrase l'attribut hidden */
.lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px;
  background:rgba(9,7,6,.94);
  backdrop-filter:blur(8px);
  cursor:zoom-out;
}
.lightbox img{
  max-width:min(1400px, 96vw);
  max-height:92vh;
  width:auto;
  height:auto;
  border-radius:12px;
  border:1px solid var(--border);
  box-shadow:0 40px 120px rgba(0,0,0,.8);
}

/* Voile d'étincelles global : une seule couche fixe créée par le JS, au-dessus
   du contenu (sous le header) mais transparente aux clics. */
.embers-veil{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:40;
}

.hero-content{
  position:relative;
  z-index:1;
  text-align:center;
  padding:60px 24px 40px;
  max-width:940px;
  margin:auto; /* centré dans l'espace restant au-dessus des piliers */
}

.hero-logo{
  width:min(720px,86%);
  height:auto;
  margin:0 auto 30px;
  filter:drop-shadow(0 8px 40px rgba(255,122,26,.45));
}

.hero-tagline{
  margin-top:44px;
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.22em;
  color:var(--faint);
}

/* --------------------------------------------------------------------------
   Piliers (bandeau accueil)
   -------------------------------------------------------------------------- */

.pillars{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  border-bottom:1px solid rgba(255,138,43,.14);
  /* Posé dans le bas du hero, par-dessus l'illustration */
  position:relative;
  z-index:1;
  width:100%;
  background:rgba(13,10,8,.68);
  backdrop-filter:blur(6px);
  border-top:1px solid var(--border-soft);
}

.pillars .pillar{
  padding:38px 30px;
  border-right:1px solid var(--border-soft);
}

.pillars .pillar-num{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.28em;
  color:var(--kicker-dark);
  margin-bottom:14px;
}

.pillars .pillar-title{
  font-family:'Cinzel', serif;
  font-size:17px;
  color:#f2dcbc;
  margin-bottom:10px;
  letter-spacing:.04em;
}

.pillars .pillar-text{
  font-size:17px;
  line-height:1.55;
  color:var(--muted);
}

/* --------------------------------------------------------------------------
   Split 2 colonnes (Régie / Atelier IA)
   -------------------------------------------------------------------------- */

.split{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(380px,1fr));
  gap:64px;
  align-items:center;
}

.split-shot{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(255,138,43,.2);
  box-shadow:0 40px 90px rgba(0,0,0,.6), 0 0 60px rgba(255,122,26,.12);
}
.split-shot img{
  width:100%;
  filter:saturate(.85) hue-rotate(-8deg);
}
.split-shot .veil{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,122,26,.06), rgba(13,10,8,.35));
  pointer-events:none; /* le clic doit atteindre l'image (zoom) */
}

.point-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.point-list .point{
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.point-list .dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  margin-top:11px;
  flex:none;
  box-shadow:0 0 12px rgba(255,138,43,.9);
}
.point-list .point-text{
  font-size:18px;
  line-height:1.5;
  color:#cbb9a1;
}

/* Pastilles pill (tags atelier IA) */
.pill-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.pill{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.1em;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(255,180,110,.24);
  color:#d9c3a5;
  background:rgba(255,138,43,.05);
}

/* --------------------------------------------------------------------------
   Duo dés / mobile
   -------------------------------------------------------------------------- */

.duo-band{
  padding:96px 40px;
  border-top:1px solid rgba(255,138,43,.14);
  border-bottom:1px solid rgba(255,138,43,.14);
  background:linear-gradient(180deg, rgba(255,122,26,.04), transparent);
}

.duo-grid{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
  gap:36px;
}

.module-panel{
  border:1px solid rgba(255,138,43,.18);
  border-radius:16px;
  padding:40px;
  background:var(--surface-strong);
}

.dice-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.die{
  border:1px solid rgba(255,180,110,.2);
  border-radius:10px;
  padding:16px 0;
  text-align:center;
  font-family:'JetBrains Mono', monospace;
  font-size:13px;
  color:#e2caa7;
  background:rgba(255,138,43,.05);
  cursor:default;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}

/* Captures téléphone réelles (fiche / combat / compétences) */
.phone-shots{
  display:flex;
  gap:14px;
  align-items:flex-start;
  flex:1 1 340px;
  min-width:280px;
  padding:8px 0;
}
.phone-shots img{
  flex:1 1 0;
  min-width:0;
  border-radius:18px;
  border:1px solid rgba(255,180,110,.22);
  box-shadow:0 24px 60px rgba(0,0,0,.55), 0 0 40px rgba(255,122,26,.08);
}
.phone-shots img:nth-child(2){ transform:translateY(16px); }

/* Version pleine largeur (bande « Les compagnons ») */
.phone-shots-lg{
  max-width:1040px;
  margin:0 auto;
  gap:28px;
  padding:0 0 16px;
}
.phone-shots-lg img{
  border-radius:24px;
  box-shadow:0 34px 80px rgba(0,0,0,.6), 0 0 60px rgba(255,122,26,.1);
}
.phone-shots-lg img:nth-child(2){ transform:translateY(26px); }

/* --------------------------------------------------------------------------
   Aventures / cartes 3 colonnes
   -------------------------------------------------------------------------- */

.grid-3{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px;
}

.adventure-card{
  border:1px solid var(--border);
  border-radius:14px;
  padding:32px;
  background:rgba(23,18,14,.6);
  transition:border-color .15s ease;
}
.adventure-card:hover{ border-color:var(--border-strong); }

.adventure-card .tag{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.24em;
  color:var(--kicker-dark);
  margin-bottom:16px;
}

/* Capture pleine largeur */
.full-shot{
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(255,138,43,.2);
  box-shadow:0 50px 110px rgba(0,0,0,.65);
}
.full-shot img{
  width:100%;
  filter:saturate(.85) hue-rotate(-8deg);
}
.full-shot-caption{
  text-align:center;
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.24em;
  color:var(--faint);
  margin-top:20px;
}

/* --------------------------------------------------------------------------
   Modules de l'Établi
   -------------------------------------------------------------------------- */

.module-card{
  display:grid;
  grid-template-columns:minmax(200px,280px) minmax(0,1fr);
  gap:40px;
  border:1px solid var(--border);
  border-radius:16px;
  padding:38px 40px;
  background:var(--surface);
}

.module-card .module-num{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.26em;
  color:var(--kicker-dark);
  margin-bottom:12px;
}

.module-card .module-title{
  font-family:'Cinzel', serif;
  font-size:26px;
  color:#f4e0c1;
  line-height:1.2;
}

.module-card .module-text{
  font-size:19px;
  line-height:1.6;
  color:#b7a48d;
  margin:0 0 22px;
}

.module-bullets{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.module-bullets .bullet{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  line-height:1.6;
  letter-spacing:.04em;
  color:var(--muted);
  border-left:1px solid rgba(255,138,43,.3);
  padding-left:12px;
}

/* --------------------------------------------------------------------------
   Tarifs
   -------------------------------------------------------------------------- */

.plans-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:22px;
  align-items:start;
}

.plan-card{
  border:1px solid var(--border);
  border-radius:16px;
  padding:36px;
  background:var(--surface);
}

.plan-card.featured{
  border-color:rgba(255,138,43,.5);
  background:linear-gradient(180deg, rgba(255,122,26,.09), rgba(23,18,14,.7));
  box-shadow:0 30px 70px rgba(255,122,26,.14);
}

.plan-card .plan-tag{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.28em;
  color:var(--kicker);
  margin-bottom:16px;
}

.plan-card .plan-name{
  font-family:'Cinzel', serif;
  font-size:28px;
  color:#f4e0c1;
  margin-bottom:8px;
}

.plan-card .plan-price-row{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:6px;
}
.plan-card .plan-price{
  font-family:'Cinzel', serif;
  font-size:46px;
  color:var(--accent-light);
}
.plan-card .plan-period{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  color:#8f7a63;
}

.plan-card .plan-note{
  font-size:17px;
  color:var(--muted);
  margin-bottom:26px;
  min-height:48px;
}

.plan-items{
  display:flex;
  flex-direction:column;
  gap:11px;
  margin-bottom:28px;
}
.plan-items .plan-item{
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-size:18px;
  line-height:1.45;
  color:#c2b099;
}
.plan-items .plan-item .diamond{
  color:var(--accent);
  flex:none;
}

.plan-card .btn-primary,
.plan-card .btn-ghost{
  width:100%;
  font-size:11px;
  letter-spacing:.14em;
  padding:14px 0;
}
.plan-card:not(.featured) .btn-ghost{
  border-color:rgba(255,138,43,.28);
}

/* --------------------------------------------------------------------------
   FAQ (accordéon)
   -------------------------------------------------------------------------- */

.faq-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.faq-item{
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(13,10,8,.6);
  overflow:hidden;
}

.faq-question{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  text-align:left;
  padding:22px 26px;
  background:transparent;
  border:none;
  cursor:pointer;
  font-family:'Cormorant Garamond', serif;
  font-size:21px;
  color:#e6d4ba;
}
.faq-item.open .faq-question{
  color:var(--accent-light);
}

.faq-icon{
  font-family:'JetBrains Mono', monospace;
  font-size:16px;
  color:var(--accent);
  transition:transform .2s ease;
}
.faq-item.open .faq-icon{
  transform:rotate(45deg);
}

.faq-body{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .3s ease;
}
.faq-item.open .faq-body{
  grid-template-rows:1fr;
}
.faq-body > div{
  overflow:hidden;
}
.faq-answer{
  padding:0 26px 24px;
  font-size:19px;
  line-height:1.6;
  color:#a9977f;
}

/* --------------------------------------------------------------------------
   Newsletter / halo
   -------------------------------------------------------------------------- */

.newsletter-section{
  padding:110px 40px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

.halo{
  position:absolute;
  left:50%;
  bottom:-140px;
  transform:translateX(-50%);
  width:700px;
  height:400px;
  background:radial-gradient(ellipse, rgba(255,122,26,.3), transparent 70%);
  animation:forgePulse 5s ease-in-out infinite;
  pointer-events:none;
}

@keyframes forgePulse{
  0%,100%{ opacity:.55; }
  50%{ opacity:1; }
}

@keyframes emberRise{
  0%{ transform:translateY(0) scale(1); opacity:0; }
  15%{ opacity:.9; }
  100%{ transform:translateY(-220px) scale(.4); opacity:0; }
}

/* --------------------------------------------------------------------------
   Formulaire (newsletter / bêta)
   -------------------------------------------------------------------------- */

.form-row{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}

.form-row input[type="email"],
.email-input{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  padding:15px 20px;
  width:320px;
  max-width:100%;
  border-radius:9px;
  border:1px solid var(--border-field);
  background:rgba(255,255,255,.03);
  color:#efe0cc;
  outline:none;
}
.email-input.lg{
  padding:16px 22px;
  width:340px;
}

.form-msg{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  margin-top:14px;
}
.form-msg.ok{ color:#8fc98f; }
.form-msg.err{ color:#e06c4f; }

/* --------------------------------------------------------------------------
   Plateformes (page Bêta)
   -------------------------------------------------------------------------- */

.platform-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
  margin-bottom:70px;
}
.platform-card{
  border:1px solid var(--border);
  border-radius:14px;
  padding:28px;
  background:rgba(23,18,14,.6);
  text-align:center;
}
.platform-card .os{
  font-family:'Cinzel', serif;
  font-size:20px;
  color:#f2dcbc;
  margin-bottom:8px;
}
.platform-card .state{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.18em;
  color:#8f7a63;
}

/* Plan de forge (roadmap) */
.roadmap-panel{
  border:1px solid var(--border);
  border-radius:16px;
  padding:44px;
  background:rgba(23,18,14,.5);
}
.roadmap-list{
  display:flex;
  flex-direction:column;
  gap:0;
}
.roadmap-row{
  display:grid;
  grid-template-columns:minmax(120px,150px) 1fr;
  gap:28px;
  padding:22px 0;
  border-top:1px solid rgba(255,138,43,.1);
}
.roadmap-row .when{
  font-family:'JetBrains Mono', monospace;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--accent-light);
}
.roadmap-row .title{
  font-family:'Cinzel', serif;
  font-size:21px;
  color:#f2dcbc;
  margin-bottom:6px;
}
.roadmap-row .text{
  font-size:18px;
  line-height:1.5;
  color:var(--muted);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.site-footer{
  border-top:1px solid var(--border);
  padding:56px 40px 40px;
  background:var(--bg-footer);
}

.footer-grid{
  max-width:1280px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:40px;
}

.footer-brand img{
  width:240px;
  height:auto;
  margin-bottom:16px;
  opacity:.75;
}
.footer-brand p{
  font-size:17px;
  line-height:1.55;
  color:var(--faint);
  margin:0 0 16px;
  max-width:300px;
}
.footer-brand .cousin{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.14em;
  color:#6b5a4a;
}

.footer-col-title{
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.24em;
  color:var(--kicker-dark);
  margin-bottom:16px;
}

.footer-links{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-links a{
  font-size:17px;
  color:#8f7a63;
  cursor:pointer;
}
.footer-links a:hover{ color:var(--accent-light); }

.footer-bottom{
  max-width:1280px;
  margin:44px auto 0;
  padding-top:22px;
  border-top:1px solid var(--border-soft);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:10px;
  letter-spacing:.14em;
  color:#5f5044;
}

/* --------------------------------------------------------------------------
   Reveal on scroll
   -------------------------------------------------------------------------- */

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.on{
  opacity:1;
  transform:none;
}

/* --------------------------------------------------------------------------
   Pages légales
   -------------------------------------------------------------------------- */

.legal-content{
  max-width:800px;
  margin:0 auto;
  line-height:1.7;
  color:var(--text);
}
.legal-content h1{
  font-family:'Cinzel', serif;
  font-size:40px;
  color:var(--title);
  margin:0 0 30px;
}
.legal-content h2{
  font-family:'Cinzel', serif;
  font-size:26px;
  color:#f4e0c1;
  letter-spacing:.02em;
  margin:40px 0 16px;
}
.legal-content p{
  font-size:17px;
  margin:0 0 16px;
}

/* ==========================================================================
   Responsive < 700px
   ========================================================================== */

@media (max-width:700px){
  .wrap{ padding:0 20px; }
  .section{ padding:64px 20px; }
  .duo-band{ padding:64px 20px; }
  .newsletter-section{ padding:64px 20px; }

  .hero h1,
  .h1-hero{ font-size:28px; }
  .h1-page{ font-size:34px; }
  .h2{ font-size:30px; }

  .site-header{ padding:14px 20px; }
  .site-nav{ display:none; }
  #burger{ display:flex; }

  body.nav-open .site-nav{
    display:flex;
    position:fixed;
    inset:0;
    z-index:60;
    background:rgba(13,10,8,.97);
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:22px;
  }
  body.nav-open .site-nav a{
    font-size:15px;
    padding:16px 28px;
  }


  .split,
  .duo-grid,
  .grid-3,
  .plans-grid,
  .pillars,
  .platform-grid,
  .footer-grid{
    gap:24px;
  }

  .module-card{
    grid-template-columns:1fr;
  }
}

@media (min-width:701px){
  #burger{ display:none; }
}

/* --------------------------------------------------------------------------
   Réduction de mouvement
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce){
  .reveal{
    transition:none;
    opacity:1;
    transform:none;
  }
  .halo{ animation:none; }
}
