/* ELIAS TECH — site vitrine. Charte : nuit, indigo, violet (celle des pubs ELIAS). */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url(pjs.woff2) format('woff2');
}

:root {
  --nuit: #0c0e1c;
  --nuit-2: #12152a;
  --carte: #161a33;
  --bord: rgba(174, 184, 242, .14);
  --texte: #eef0fb;
  --texte-2: #b9bfdf;
  --texte-3: #8a91c0;
  --indigo: #6673ad;
  --clair: #aeb8f2;
  --violet: #8f69f0;
  --violet-fonce: #6a4fd0;
  --vert: #3fbf8f;
  --rayon: 22px;
  --largeur: 1160px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--nuit);
  color: var(--texte);
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 17px;
  line-height: 1.6;
  overflow-x: hidden;
}
img, video, canvas { display: block; max-width: 100%; }
a { color: var(--clair); }
a:hover { color: #fff; }
:focus-visible { outline: 3px solid var(--violet); outline-offset: 3px; border-radius: 6px; }

.conteneur { width: 100%; max-width: var(--largeur); margin: 0 auto; padding: 0 24px; }
@media (max-width: 600px) { .conteneur { padding: 0 16px; } }

/* ── En-tête ── */
.entete {
  position: sticky; top: 0; z-index: 20;
  background: rgba(12, 14, 28, .78);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s;
}
.entete.defile { border-bottom-color: var(--bord); }
.entete .conteneur { display: flex; align-items: center; gap: 24px; height: 72px; }
.entete .logo img { height: 30px; width: auto; }
.entete .logo { margin-right: auto; }
.entete nav { display: flex; gap: 26px; }
.entete nav a { color: var(--texte-2); text-decoration: none; font-weight: 600; font-size: 15px; }
.entete nav a:hover { color: #fff; }
@media (max-width: 860px) { .entete nav { display: none; } }
@media (max-width: 420px) { .entete .bouton { padding: 10px 14px; font-size: 14px; } .entete .logo img { height: 24px; } }

/* ── Boutons ── */
.bouton {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px; border-radius: 999px; border: 0; cursor: pointer;
  font: 700 16px/1.2 inherit; font-family: inherit; text-decoration: none;
  color: #fff; background: linear-gradient(180deg, #7d6af0, #5b5fc0);
  box-shadow: 0 10px 30px rgba(143, 105, 240, .35);
  transition: transform .2s, box-shadow .2s;
}
.bouton:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 36px rgba(143, 105, 240, .5); }
.bouton.discret { background: transparent; border: 1px solid var(--bord); box-shadow: none; color: var(--texte); }
.bouton.discret:hover { border-color: var(--clair); }
.entete .bouton { padding: 11px 18px; font-size: 15px; }

/* ── Accueil ── */
.accueil { position: relative; padding: 70px 0 90px; overflow: hidden; }
.accueil::before {
  content: ''; position: absolute; inset: -20% -10% auto; height: 900px; pointer-events: none;
  background: radial-gradient(ellipse at 60% 30%, rgba(110, 120, 200, .30), transparent 60%);
}
.accueil .conteneur { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 40px; align-items: center; }
@media (max-width: 900px) { .accueil .conteneur { grid-template-columns: 1fr; } .accueil { padding-top: 40px; } }
.etiquette {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(143, 105, 240, .45);
  background: rgba(143, 105, 240, .12); color: #d9cffc; font-weight: 700; font-size: 14px; letter-spacing: .02em;
}
.etiquette .point { width: 8px; height: 8px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 0 0 rgba(143, 105, 240, .7); animation: pouls 2s infinite; }
@keyframes pouls { 70% { box-shadow: 0 0 0 10px rgba(143, 105, 240, 0); } 100% { box-shadow: 0 0 0 0 rgba(143, 105, 240, 0); } }
h1 { font-size: clamp(40px, 6.2vw, 74px); line-height: 1.04; letter-spacing: -.025em; margin: 22px 0 22px; font-weight: 800; }
h1 em, h2 em { font-style: normal; background: linear-gradient(90deg, var(--clair), var(--violet)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.chapo { font-size: clamp(18px, 2vw, 21px); color: var(--texte-2); max-width: 36em; margin: 0 0 32px; }
.actions { display: flex; flex-wrap: wrap; gap: 14px; }
.accueil canvas { width: 100%; aspect-ratio: 1 / 1; max-width: 560px; margin: 0 auto; }

/* ── Sections ── */
section { padding: 100px 0; }
@media (max-width: 600px) { section { padding: 70px 0; } }
.surtitre { color: var(--violet); font-weight: 800; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 14px; }
h2 { font-size: clamp(32px, 4.4vw, 52px); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 18px; font-weight: 800; }
.intro { color: var(--texte-2); font-size: 19px; max-width: 40em; margin: 0 0 50px; }

/* ── Le constat ── */
.constat { background: linear-gradient(180deg, var(--nuit), #0a0b14 40%, var(--nuit)); }
.constat ol { list-style: none; padding: 0; margin: 0 0 40px; }
.constat li {
  font-size: clamp(24px, 3.6vw, 44px); font-weight: 700; line-height: 1.25; color: #6c7090;
  padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .05);
  opacity: .25; transform: translateY(16px); transition: opacity .7s, transform .7s, color .7s;
}
.constat li.vu { opacity: 1; transform: none; color: #c9cbd2; }
.constat li b { color: #fff; font-weight: 800; }
.constat .chute { font-size: clamp(30px, 4.6vw, 58px); font-weight: 800; line-height: 1.15; opacity: 0; transform: translateY(16px); transition: opacity .8s .1s, transform .8s .1s; }
.constat .chute.vu { opacity: 1; transform: none; }
.constat .chute span { color: #ff6b5b; }
.constat .reponse { margin-top: 26px; font-size: clamp(22px, 2.8vw, 32px); font-weight: 700; color: var(--clair); opacity: 0; transition: opacity .8s .5s; }
.constat .reponse.vu { opacity: 1; }

/* ── Modules ── */
.modules { display: grid; gap: 28px; }
.module {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch;
  background: var(--carte); border: 1px solid var(--bord); border-radius: var(--rayon); overflow: hidden;
}
.module:nth-child(even) .anim { order: 2; }
@media (max-width: 860px) { .module { grid-template-columns: 1fr; } .module:nth-child(even) .anim { order: 0; } }
.module .anim { background: radial-gradient(ellipse at 50% 40%, #232a55, #141733 70%); min-height: 320px; display: grid; place-items: center; padding: 18px; }
.module .anim canvas { width: 100%; max-width: 520px; aspect-ratio: 600 / 440; }
.module .texte { padding: 42px 44px; }
@media (max-width: 600px) { .module .texte { padding: 28px 22px 32px; } }
.module h3 { font-size: 30px; margin: 0 0 6px; letter-spacing: -.01em; line-height: 1.15; }
.module h3 small { display: block; font-size: 14px; color: var(--violet); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.module .accroche { font-size: 21px; font-weight: 700; color: var(--clair); margin: 0 0 18px; line-height: 1.35; }
.module ul { list-style: none; padding: 0; margin: 0 0 22px; }
.module li { position: relative; padding: 7px 0 7px 30px; color: var(--texte-2); }
.module li::before { content: ''; position: absolute; left: 4px; top: 15px; width: 12px; height: 12px; background: var(--violet); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.statut { display: inline-block; padding: 5px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--texte-2); border: 1px solid var(--bord); }
.statut.bientot { color: #fff; border: 0; background: linear-gradient(180deg, #7d6af0, #5b5fc0); }

/* Pub CRC */
.video { display: flex; gap: 24px; align-items: center; margin-top: 26px; flex-wrap: wrap; }
.video video { width: 200px; aspect-ratio: 9 / 16; border-radius: 18px; border: 1px solid var(--bord); background: #000; box-shadow: 0 18px 40px rgba(0, 0, 0, .45); }
.video p { flex: 1 1 180px; margin: 0; color: var(--texte-3); font-size: 15px; }

/* ── Tout est relié ── */
.relie .conteneur { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items: center; }
@media (max-width: 900px) { .relie .conteneur { grid-template-columns: 1fr; } }
.relie canvas { width: 100%; aspect-ratio: 600 / 520; }
.liens { list-style: none; padding: 0; margin: 0; }
.liens li { padding: 14px 0; border-bottom: 1px solid var(--bord); color: var(--texte-2); }
.liens b { color: #fff; }

/* ── Origine ── */
.origine { text-align: center; }
.origine blockquote { margin: 0 auto; max-width: 22em; font-size: clamp(28px, 4vw, 46px); font-weight: 800; line-height: 1.2; letter-spacing: -.015em; }
.origine p { color: var(--texte-2); max-width: 38em; margin: 22px auto 0; font-size: 19px; }

/* ── Contact ── */
.contact .conteneur { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; }
@media (max-width: 900px) { .contact .conteneur { grid-template-columns: 1fr; } }
form { background: var(--carte); border: 1px solid var(--bord); border-radius: var(--rayon); padding: 32px; display: grid; gap: 18px; }
@media (max-width: 600px) { form { padding: 22px 18px; } }
.deux { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 600px) { .deux { grid-template-columns: 1fr; } }
label { display: grid; gap: 7px; font-weight: 700; font-size: 15px; }
label .facultatif { color: var(--texte-3); font-weight: 500; }
input, textarea {
  width: 100%; font: inherit; font-size: 16px; color: var(--texte);
  background: var(--nuit-2); border: 1px solid var(--bord); border-radius: 12px; padding: 13px 14px;
}
input:focus, textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(143, 105, 240, .25); }
textarea { min-height: 130px; resize: vertical; }
.accord { display: flex; gap: 12px; align-items: flex-start; font-weight: 500; color: var(--texte-2); font-size: 14px; }
.accord input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--violet); }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.message { margin: 0; padding: 14px 16px; border-radius: 12px; font-weight: 600; display: none; }
.message.ok { display: block; background: rgba(63, 191, 143, .14); color: #a6f0d2; border: 1px solid rgba(63, 191, 143, .4); }
.message.erreur { display: block; background: rgba(255, 107, 91, .12); color: #ffc2bb; border: 1px solid rgba(255, 107, 91, .4); }
form .bouton[disabled] { opacity: .6; cursor: wait; transform: none; }

/* ── Pied de page ── */
footer { border-top: 1px solid var(--bord); padding: 34px 0 44px; color: var(--texte-3); font-size: 14px; }
footer .conteneur { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
footer img { height: 22px; width: auto; }
footer nav { display: flex; gap: 22px; margin-left: auto; flex-wrap: wrap; }
footer a { color: var(--texte-3); text-decoration: none; }
footer a:hover { color: #fff; }

/* ── Pages légales ── */
.legal { padding: 60px 0 90px; }
.legal .conteneur { max-width: 820px; }
.legal h1 { font-size: clamp(34px, 5vw, 48px); }
.legal h2 { font-size: 24px; margin: 40px 0 10px; }
.legal p, .legal li { color: var(--texte-2); }
.a-completer { color: #ffd38a; font-weight: 600; }

/* Apparition au défilement */
.apparait { opacity: 0; transform: translateY(24px); transition: opacity .8s, transform .8s; }
.apparait.vu { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .apparait, .constat li, .constat .chute, .constat .reponse { opacity: 1 !important; transform: none !important; transition: none !important; }
  .constat li { color: #c9cbd2; }
  .etiquette .point { animation: none; }
}

/* En-tête sur téléphone : libellé court « Présentation » */
@media (max-width: 520px) { .entete .bouton .long { display: none; } .entete .bouton { text-transform: capitalize; } }
