/* Hub NIA, direction C « Vitrine » modifiée (choix de Tibo du 16/10/2026) : bandeau noir, fond papier, cartes côte à côte */
@font-face { font-family: Poppins; font-weight: 400; src: url(polices/Poppins-Regular.ttf) format("truetype"); }
@font-face { font-family: Poppins; font-weight: 500; src: url(polices/Poppins-Medium.ttf) format("truetype"); }
@font-face { font-family: Poppins; font-weight: 600; src: url(polices/Poppins-SemiBold.ttf) format("truetype"); }

:root {
  --noir: #05070A;
  --clair: #ECECED;
  --gris: #4B4E55;
  --gris-clair: #A3A6AC;
  --papier: #F5F4F0;
  --papier-fonce: #ECEAE3;
  --or: #C9A24A;
  --or-clair: #E2C57A;
  --or-fonce: #8C6D2C;
  --vert: #3FA56B;
  --rouge: #D0574C;
  --marge: clamp(16px, 5vw, 64px);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--papier); color: var(--noir); font: 400 16px/1.55 Poppins, system-ui, sans-serif; }
a { color: inherit; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }

/* ---------- Bandeau ---------- */
.tete { position: relative; overflow: hidden; background: var(--noir); color: var(--clair); padding: 22px var(--marge) 0; }
/* Animation « Crête » (bandeau.js) sous le texte du bandeau ; le triangle or fixe est retiré (archives/2026-10-17) */
.tete > canvas.bandeau { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.tete > :not(canvas) { position: relative; z-index: 1; }
.ligne { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
.tete { --logo-h: clamp(34px, 4.2vw, 50px); }
.logo { display: block; height: var(--logo-h); width: auto; }
/* « HUB » à côté du logo, à la hauteur des lettres NIA (lettres = 76 % de la hauteur du logo) */
.marque { display: flex; align-items: center; gap: calc(var(--logo-h) * .32); text-decoration: none; }
.mot-hub { display: block; padding-left: calc(var(--logo-h) * .32); border-left: 1px solid #C9A24A99;
  font-weight: 500; font-size: calc(var(--logo-h) * 1.08); line-height: 1; letter-spacing: .06em; color: var(--or-clair);
  transform: translateY(calc(var(--logo-h) * .028)); }
.outils-tete { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--gris-clair); }
.outils-tete a { text-decoration: none; }
.outils-tete button { background: none; border: 0; padding: 4px 0; color: inherit; letter-spacing: inherit; text-transform: inherit; font-size: inherit; }
.outils-tete a:hover, .outils-tete button:hover, .outils-tete button[aria-pressed="true"] { color: var(--or-clair); }
.tete h1 { margin: clamp(28px, 6vw, 64px) 0 0; max-width: 820px; font-weight: 500; font-size: clamp(30px, 4.6vw, 56px); line-height: 1.1; }
.tete h1 em { font-style: normal; color: var(--or-clair); }
.insecable { white-space: nowrap; }
/* Sous le titre de l'accueil : les applications sont des exemples, tout est adaptable (Tibo, 19/10) */
.tete .sur-mesure { margin: 16px 0 0; max-width: 680px; color: #C9CBD0; }
.tete .sur-mesure b { display: block; margin-top: 2px; font-weight: 500; color: var(--or-clair); }
.filtres { display: flex; flex-wrap: wrap; gap: 10px; padding: 28px 0 32px; }
.filtres button { background: transparent; border: 1px solid #ffffff40; color: var(--clair); padding: 7px 16px; border-radius: 999px; font-size: 14px; }
.filtres button:hover { border-color: var(--or); }
.filtres button[aria-pressed="true"] { background: var(--or); border-color: var(--or); color: var(--noir); font-weight: 500; }
.filtres-familles { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: -14px 0 0; padding-bottom: 30px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.filtres-familles button { background: none; border: 0; border-bottom: 1px solid transparent; padding: 4px 0; color: var(--gris-clair); letter-spacing: inherit; text-transform: inherit; font-size: inherit; }
.filtres-familles button:hover { color: var(--clair); }
.filtres-familles button[aria-pressed="true"] { color: var(--or-clair); border-bottom-color: var(--or); }
.famille { display: inline-block; background: var(--noir); color: var(--or-clair); padding: 4px 10px; font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; line-height: 1.4; }
.visuel .famille { position: absolute; z-index: 2; left: 0; bottom: 0; }
.labels-tete .famille { border: 1px solid #C9A24A80; }
.fil { margin-top: 28px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--gris-clair); }
.fil a { text-decoration: none; }
.fil a:hover { color: var(--or-clair); }
.tete .accroche { margin: 10px 0 0; max-width: 680px; color: #C9CBD0; padding-bottom: 40px; }

/* ---------- Mode « Organiser » ---------- */
.consigne { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 20px;
  margin: 28px var(--marge) 0; padding: 12px 18px; background: #fff; border-left: 3px solid var(--or); font-size: 15px; color: var(--gris); }
.consigne div { display: flex; gap: 10px; }
.btn { border: 1px solid var(--noir); color: var(--noir); background: transparent; padding: 9px 20px; border-radius: 999px; font-size: 14px; font-weight: 500; text-decoration: none; display: inline-block; }
.btn.plein { background: var(--noir); color: #fff; }

/* ---------- Grille des applications ---------- */
.grille { display: grid; gap: 56px 44px; padding: 44px var(--marge) 72px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.carte { position: relative; display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.visuel { position: relative; margin-right: 14px; }
.visuel::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; background: var(--noir); transition: inset .2s; }
.vignette, .vide { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 16 / 10; box-shadow: 0 24px 50px -24px #05070A66; }
.vignette { object-fit: cover; object-position: top left; background: #fff; }
.vide { display: grid; place-items: center; background: #fff; color: var(--gris-clair); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.carte .corps { padding-top: 30px; display: flex; flex-direction: column; flex: 1; }
.labels { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--or-fonce); font-weight: 500; }
.carte h2 { margin: 6px 0 6px; font-size: clamp(21px, 2vw, 25px); font-weight: 500; line-height: 1.25; }
.carte p { margin: 0; color: var(--gris); }
.pied { margin-top: auto; padding-top: 16px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; font-size: 14px; font-weight: 500; }
.statut { color: var(--or-fonce); }
.statut.en-cours { color: #B5562E; }
.fleche { display: inline-block; margin-left: 6px; transition: transform .2s; }
a.carte:hover .fleche, a.carte:focus-visible .fleche { transform: translateX(4px); }
a.carte:hover .visuel::before { inset: 18px -18px -18px 18px; }
a.carte:focus-visible { outline: 2px solid var(--or); outline-offset: 8px; }
.aucune { grid-column: 1 / -1; color: var(--gris); }

.organiser .carte { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.organiser .carte .vignette { pointer-events: none; }
.organiser .carte::after { content: ""; position: absolute; inset: -12px -2px -12px -12px; border: 1px dashed var(--or); pointer-events: none; }
.carte.glisse { z-index: 5; cursor: grabbing; transition: none; }
.carte.glisse .visuel::before { inset: 22px -22px -22px 22px; }
.deplacer { display: none; gap: 8px; margin-top: 14px; }
.organiser .deplacer { display: flex; }
.deplacer button { border: 1px solid var(--noir); background: #fff; width: 40px; height: 34px; font-size: 16px; line-height: 1; }
.deplacer button:disabled { opacity: .3; cursor: default; }

/* ---------- Page d'une application ---------- */
.labels-tete { margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--or-clair); font-weight: 500; }
.labels-tete .statut { color: #E3B48F; }
.tete .titre-app { margin-top: 8px; max-width: none; font-size: clamp(26px, 3.4vw, 46px); }   /* titre d'application sur une ligne (Tibo, 17/10) */
.page { display: grid; gap: 48px; padding: 44px var(--marge) 56px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1040px) { .page { grid-template-columns: minmax(0, 1.9fr) minmax(300px, 1fr); align-items: start; } }
.barre-scene { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.onglets { display: flex; gap: 8px; }
.onglets button { border: 1px solid var(--noir); background: transparent; color: var(--noir); padding: 7px 18px; border-radius: 999px; font-size: 14px; }
.onglets button[aria-pressed="true"] { background: var(--noir); color: #fff; }
.agrandir { border: 0; background: none; padding: 6px 0; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--gris); }
.agrandir:hover { color: var(--or-fonce); }
.cadre { position: relative; margin-right: 14px; }
.cadre::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; background: var(--noir); }
.cadre iframe { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #0A1F2C; box-shadow: 0 24px 50px -24px #05070A66; }
.scene .actions { margin-top: 34px; }
.aide-demo { flex-basis: 100%; margin: 4px 0 0; padding: 10px 14px; background: #fff; border-left: 3px solid var(--rouge); font-size: 14px; color: var(--gris); }
.aide-demo a { color: var(--noir); white-space: nowrap; }
.fermer { display: none; }
.cadre.agrandi { position: fixed; inset: 0; z-index: 100; margin: 0; background: var(--noir); }
.cadre.agrandi::before { display: none; }
.cadre.agrandi iframe { width: 100%; height: 100%; aspect-ratio: auto; box-shadow: none; }
.cadre.agrandi .fermer { display: block; position: absolute; top: 12px; right: 12px; z-index: 2; border: 1px solid #ffffff40; border-radius: 999px;
  background: #05070Acc; color: var(--clair); padding: 6px 14px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.cadre.agrandi .fermer:hover { border-color: var(--or); color: var(--or-clair); }
body.agrandi-ouvert { overflow: hidden; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; }
.btn.attente { border-color: var(--gris-clair); color: var(--gris); }
.btn.inactif { border-color: var(--gris-clair); color: var(--gris); cursor: default; }
.fiche { background: #fff; padding: 6px 24px 14px; }
.fiche section { padding: 16px 0; }
.fiche section + section { border-top: 1px solid #0000000f; }
.fiche h3 { margin: 0 0 8px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--or-fonce); }
.fiche p { margin: 0; color: var(--gris); font-size: 15px; }
.fiche p + p { margin-top: 8px; }
.fiche .gain { color: var(--noir); font-weight: 600; }
.apps { list-style: none; margin: 0; padding: 0; }
.apps li { display: flex; gap: 12px; padding: 7px 0; font-size: 15px; }
.apps .sens { flex: 0 0 58px; padding-top: 3px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--or-fonce); }
.apps b { font-weight: 500; }
.apps .quoi { display: block; color: var(--gris); }
.apps .auto { display: inline-block; margin-top: 2px; font-size: 12px; color: var(--or-fonce); }
.apps .auto::before { content: ""; display: inline-block; width: 0; height: 0; margin-right: 6px; vertical-align: 1px;
  border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 7px solid var(--or); }
.fiche .adaptation { margin-top: 8px; font-size: 14px; }
.demo-etat { font-size: 15px; color: var(--noir); }
.prepa { margin-top: 10px; font-size: 14px; color: var(--gris); }
.prepa summary { cursor: pointer; color: var(--noir); }
.prepa p { margin-top: 8px; font-size: 14px; }
.voyant { display: inline-block; width: 0; height: 0; margin-right: 8px; vertical-align: 1px;
  border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 10px solid var(--gris-clair); }
.voyant.vert { border-bottom-color: var(--vert); }
.voyant.rouge { border-bottom-color: var(--rouge); }
.voisines { display: flex; justify-content: space-between; gap: 16px; padding: 0 var(--marge) 64px; }
.voisines a { display: flex; flex-direction: column; text-decoration: none; max-width: 48%; }
.voisines a span { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--or-fonce); }
.voisines a b { font-weight: 500; }
.voisines a:hover b { text-decoration: underline; text-decoration-color: var(--or); text-underline-offset: 4px; }
.voisines .suivante { text-align: right; margin-left: auto; }

/* ---------- Envoyer au client ---------- */
dialog.envoi { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border: 0; padding: 28px 28px 24px; background: var(--papier); color: var(--noir); box-shadow: 0 30px 80px -20px #05070A99; }
dialog.envoi::backdrop { background: #05070Acc; }
dialog.envoi h2 { margin: 0; font-size: 22px; font-weight: 500; }
dialog.envoi h3 { margin: 0 0 4px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--or-fonce); }
dialog.envoi section { padding: 18px 0 0; margin-top: 18px; border-top: 1px solid #0000001a; }
dialog.envoi .aide { margin: 0 0 12px; font-size: 14px; color: var(--gris); }
dialog.envoi .btn small { font-weight: 400; color: var(--gris); margin-left: 6px; }
dialog.envoi textarea.mail { display: block; width: 100%; margin-bottom: 12px; padding: 12px; border: 1px solid #0000002a; background: #fff; font: 400 14px/1.5 Poppins, system-ui, sans-serif; resize: vertical; }
.fermer-envoi { position: absolute; top: 14px; right: 14px; border: 0; background: none; font-size: 18px; color: var(--gris); }
.fermer-envoi:hover { color: var(--noir); }
.copie-secours { position: fixed; top: -100px; opacity: 0; }

@media (max-width: 560px) {
  .grille { gap: 48px; }
}

/* Plusieurs exemples sous une même application (champ « exemples ») : empilés, chacun avec son titre */
.scenes { display: grid; gap: 64px; min-width: 0; }
.titre-exemple { margin: 0 0 14px; font-size: clamp(18px, 2vw, 22px); }
.envoi-tous { margin-top: -24px; }
.texte-exemple { margin: -6px 0 16px; max-width: 640px; color: var(--gris, #5A5D63); }
