/* =================================================================
   Séminaire Initiation à la Recherche — compléments au thème AIARD
   (theme.css = thème du keynote TRAI 2026, repris tel quel).
   Ici : uniquement les mises en page propres à ce cours.
   ================================================================= */
:root{ --rouge:#f0687a; }

/* ---------- générique ---------- */
.slide.wide{ max-width:1560px; }
.slide.wide h2{ font-size:clamp(1.6rem,3.3vw,2.7rem); }
.slide h2 a.hl, a.hl{ color:var(--cyan); text-decoration:none; border-bottom:2px solid rgba(52,214,238,.4); }
a.hl:hover{ border-color:var(--cyan); }
/* une image à fond blanc posée sur le thème sombre : une feuille */
.paper{ margin:0; background:#fff; border-radius:14px; padding:10px; box-shadow:0 30px 70px -34px rgba(0,0,0,.95); overflow:hidden; }
.paper img{ display:block; width:100%; height:100%; object-fit:contain; border-radius:6px; }
.paper figcaption, .shot.cap figcaption{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:#42507a; padding:6px 4px 0; text-align:center; }
.shot{ margin:0; }
figure{ margin:0; }
.ed.compact li{ padding:8px 0; }
.ed li > span{ color:var(--calque-doux); }
.ed.large li{ grid-template-columns:clamp(210px,21vw,330px) 1fr; font-size:clamp(.98rem,1.38vw,1.2rem); }
.ed.xl li{ grid-template-columns:clamp(280px,33vw,520px) 1fr; font-size:clamp(.96rem,1.32vw,1.16rem); }
.ed.large, .ed.xl{ max-width:none; }
.refline{ position:absolute; left:var(--pad,56px); bottom:16px; max-width:70%; font-size:.86rem; line-height:1.45; color:#aab4d0; opacity:.9; }
.refline i.t{ font-style:italic; margin:0; opacity:1; }
.bar{ text-decoration:overline; }
img.partner{ position:absolute; top:clamp(60px,8vh,84px); right:var(--pad); height:clamp(40px,6vh,62px); border-radius:8px; box-shadow:0 12px 30px -14px rgba(0,0,0,.9); }

/* ---------- carte ---------- */
.hub-head{ max-width:min(860px,52vw); }
.hub-visual.hub-trio{ transform:rotate(1deg); width:clamp(380px,37vw,640px); top:7%; }
.hub-trio .strip{ display:grid; grid-template-columns:1.25fr 1.35fr .62fr; }
.hub-trio .strip img{ width:100%; height:clamp(120px,20vh,200px); object-fit:cover; aspect-ratio:auto; background:#fff; display:block; }
.hub-trio .strip img + img{ border-left:1px solid var(--trait); }
.partners-wall a.tile{ display:block; }
.acts .act span{ max-width:24ch; }

/* ---------- 01 · le laboratoire ---------- */
.orga{ max-height:44vh; align-self:center; width:min(100%,calc(44vh * 2.44)); }
.stats.team{ grid-template-columns:1.5fr repeat(4,1fr); align-items:start; }
.stat .v.or{ background:linear-gradient(100deg,var(--or),#ffd98a); -webkit-background-clip:text; background-clip:text; color:transparent; font-size:clamp(2.6rem,5.6vw,4.2rem); }
.som{ max-width:none; width:min(100%,980px); }
.som li{ grid-template-columns:clamp(70px,8vw,110px) 1fr; font-size:clamp(1.2rem,2vw,1.6rem); padding:16px 0; align-items:baseline; }
.som li b{ font-size:1.5em; }
.som li i{ font-family:var(--display); }
.som li u{ text-decoration:none; color:var(--or); font-style:italic; }
.som li small{ display:block; margin-top:6px; font-family:var(--mono); font-size:.62em; letter-spacing:.06em; color:var(--calque-doux); }

/* ---------- 02 · pourquoi inventer autrement ---------- */
.brains{ display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(16px,2.4vw,40px); align-items:center; justify-items:center; }
.brains .shot{ max-width:min(100%,56vh); border-color:rgba(52,214,238,.25); }
.brains .shot img{ max-height:54vh; object-fit:cover; }
.doubt{ display:flex; flex-direction:column; align-items:center; gap:10px; width:clamp(150px,17vw,250px); }
.doubt img{ width:100%; }
.bubble{ font-family:var(--display); font-style:italic; font-size:clamp(1.05rem,1.7vw,1.5rem); color:var(--or); text-align:center; line-height:1.2;
  border:1px solid rgba(245,185,69,.45); border-radius:999px; padding:12px 18px; background:rgba(245,185,69,.07); }
.limits{ display:grid; grid-template-columns:auto 1fr; gap:clamp(18px,2.6vw,44px); align-items:stretch; justify-content:center; }
.limits .flow{ height:66vh; aspect-ratio:1024/1344; padding:8px; }
.limits .flow.short{ aspect-ratio:761/1375; }
.limits .qs{ position:relative; min-width:min(44vw,640px); }
.limits .q{ position:absolute; left:0; right:0; transform:translateY(-50%); margin:0;
  font-family:var(--display); font-size:clamp(1.05rem,1.75vw,1.55rem); line-height:1.2; color:var(--calque);
  background:linear-gradient(90deg,rgba(79,124,246,.30),rgba(27,37,71,.55)); border:1px solid var(--trait); border-left:3px solid var(--cyan);
  border-radius:0 12px 12px 0; padding:clamp(8px,1.3vh,14px) 18px; }
.limits .q.is-step{ transform:translate(-18px,-50%); } .limits .q.is-step.is-on{ transform:translateY(-50%); }
.limits .q::before{ content:""; position:absolute; left:-15px; top:50%; border:7px solid transparent; border-right-color:var(--cyan); transform:translateY(-50%); }
.limits.three{ grid-template-columns:auto minmax(0,1fr) minmax(0,1.05fr); }
.limits.three .qs{ min-width:0; }
.limits.three .q{ font-size:clamp(.92rem,1.3vw,1.2rem); padding:8px 14px; }
.build{ display:flex; flex-direction:column; justify-content:center; gap:clamp(10px,1.8vh,20px); }
.build .card{ padding:clamp(12px,1.5vw,20px); border-color:rgba(245,185,69,.35); }
.build .card p{ font-size:clamp(.98rem,1.35vw,1.22rem); color:var(--calque); line-height:1.35; }
.build .card p b{ color:var(--or); font-weight:600; }
.marks{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.marks img{ height:clamp(24px,3.4vh,34px); border-radius:6px; display:block; }
.marks img.lt{ background:#fff; padding:2px 8px; }

/* ---------- 03 · nos outils de R&D ---------- */
.pipe{ display:grid; grid-template-columns:auto auto minmax(0,1fr) auto auto auto; align-items:center; gap:clamp(10px,1.6vw,26px); }
.srcs{ display:flex; flex-direction:column; gap:clamp(12px,2.4vh,26px); }
.src{ display:grid; grid-template-columns:clamp(54px,6vw,86px) auto; column-gap:14px; align-items:center; }
.src img{ grid-row:span 2; width:100%; border-radius:10px; }
.src b{ font-family:var(--display); font-size:clamp(1.5rem,2.6vw,2.3rem); line-height:1; color:var(--or); align-self:end; }
.src span{ font-family:var(--mono); font-size:clamp(.74rem,1vw,.92rem); color:var(--cyan); align-self:start; margin-top:5px; white-space:nowrap; }
.pipe .arr, .doms .hop{ color:var(--cyan); font-size:clamp(1.4rem,2.4vw,2.2rem); }
.pipe .net img{ width:100%; max-height:56vh; object-fit:contain; display:block; }
.reason{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.doms{ display:flex; align-items:center; gap:8px; }
.dom{ position:relative; width:clamp(104px,11.5vw,184px); isolation:isolate; }
.dom .cloud{ width:100%; display:block; }
.dom .bip{ position:absolute; left:50%; top:50%; height:74%; transform:translate(-50%,-46%); mix-blend-mode:multiply; }
.dom b{ position:absolute; left:8%; top:36%; width:26px; height:26px; border-radius:50%; background:var(--or); color:#1b2547; font-size:.72rem; display:grid; place-items:center; }
.dom + .hop + .dom b{ left:auto; right:8%; }
.pbs{ display:flex; justify-content:space-between; width:76%; }
.pbs .up, .pbs .down{ color:var(--cyan); font-size:clamp(1.3rem,2.2vw,2rem); width:clamp(52px,5.4vw,80px); text-align:center; line-height:1; }
.ball{ width:clamp(52px,5.4vw,80px); aspect-ratio:1; border-radius:50%; display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:clamp(1.1rem,1.9vw,1.7rem); }
.ball.bpb{ background:rgba(62,210,155,.2); border:2px solid var(--vert); color:var(--vert); }
.ball.bs{ background:rgba(79,124,246,.2); border:2px solid var(--bleu); color:#9db7ff; }
.pipe .woman{ height:clamp(170px,36vh,380px); align-self:end; filter:drop-shadow(0 20px 30px rgba(0,0,0,.6)); }
.cloudfig{ display:grid; place-items:center; }
.cloudfig img{ max-width:100%; max-height:66vh; }
.apps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,26px) clamp(12px,1.4vw,20px); }
.apps section.s4{ grid-column:span 4; } .apps section.s3{ grid-column:span 3; } .apps section.s1{ grid-column:span 1; }
.apps h3{ font-family:var(--display); font-size:clamp(1.1rem,1.8vw,1.5rem); color:var(--or); margin-bottom:10px; }
.apps .s3 h3{ color:var(--cyan); } .apps .s1 h3{ color:var(--violet); }
.apps .row{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:clamp(12px,1.4vw,20px); }
.apps figure{ border-radius:12px; overflow:hidden; border:1px solid var(--trait); background:#0a0e1f; height:clamp(150px,29vh,300px); }
.apps figure img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- 04 · la plateforme ---------- */
.plat{ display:grid; grid-template-columns:1fr 1.35fr .82fr; gap:clamp(12px,1.6vw,24px); align-items:center; }
.plat .shot{ box-shadow:0 30px 70px -30px rgba(0,0,0,.95); border-color:rgba(52,214,238,.25); background:#fff; }
.plat .shot img{ max-height:62vh; object-fit:contain; object-position:top; }
.plat .shot.a{ transform:rotate(-1.2deg); } .plat .shot.c{ transform:rotate(1.2deg); }
.axis{ display:flex; align-items:center; gap:16px; font-family:var(--mono); font-size:clamp(.78rem,1.1vw,1rem); letter-spacing:.14em; text-transform:uppercase; color:var(--calque-doux); }
.axis i{ flex:1; height:3px; border-radius:2px; background:linear-gradient(90deg,var(--violet),var(--cyan)); position:relative; }
.axis i::after{ content:""; position:absolute; right:-2px; top:50%; border:8px solid transparent; border-left-color:var(--cyan); transform:translate(100%,-50%); }
.axis span:last-child{ color:var(--cyan); margin-left:14px; }
.onto{ display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:clamp(26px,3.2vw,48px); align-items:stretch; }
.onto .card{ position:relative; padding:clamp(14px,1.6vw,22px); }
.onto .card + .card::before{ content:"➜"; position:absolute; left:calc(-1 * clamp(26px,3.2vw,48px)); width:clamp(26px,3.2vw,48px); top:22px; text-align:center; color:var(--or); font-size:1.5rem; }
.onto h3{ font-family:var(--display); font-size:clamp(1.25rem,2vw,1.7rem); color:var(--or); margin-bottom:14px; }
.onto .ent{ display:flex; align-items:center; gap:12px; margin:10px 0; font-size:clamp(1rem,1.4vw,1.25rem); color:var(--calque-doux); }
.onto .ent b{ color:var(--calque); font-weight:600; }
.onto .ent img{ width:clamp(34px,3.4vw,48px); border-radius:50%; flex:none; }
.onto .ent img.sq{ border-radius:9px; }
.onto .links{ margin-top:16px; padding-top:12px; border-top:1px solid var(--trait); display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; color:var(--calque-doux); }
.onto .links small{ flex-basis:100%; font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; }
.onto .links span{ display:inline-flex; align-items:center; gap:6px; }
.onto .links img{ width:26px; border-radius:50%; }
.onto .vals{ margin:6px 0 0 60px; font-size:clamp(.95rem,1.25vw,1.12rem); color:var(--calque-doux); line-height:1.6; }
.onto .paper{ padding:6px; }
.onto .leg{ display:flex; align-items:center; gap:10px; margin-top:10px; font-size:clamp(.9rem,1.15vw,1.05rem); color:var(--calque-doux); }
.onto .leg img{ width:24px; }
.gwrap{ display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:clamp(16px,2.4vw,40px); align-items:center; }
.gfig{ display:grid; place-items:center; }
.gfig img{ max-width:100%; max-height:68vh; }
.gdefs{ display:flex; flex-direction:column; gap:clamp(12px,2vh,22px); }
.def{ border:1px solid var(--trait); border-left:3px solid var(--rouge); border-radius:0 14px 14px 0; background:rgba(27,37,71,.55); padding:14px 16px; }
.def.dps{ border-left-color:var(--bleu); }
.def b{ display:flex; align-items:center; gap:10px; font-family:var(--display); font-size:clamp(1.1rem,1.6vw,1.4rem); color:var(--calque); }
.def b img{ width:30px; border-radius:50%; }
.def p{ margin-top:8px; font-size:clamp(.95rem,1.25vw,1.12rem); color:var(--calque-doux); line-height:1.5; }
.def code{ font-family:var(--mono); font-size:.9em; color:var(--cyan); }
.read{ font-family:var(--display); font-size:clamp(1.05rem,1.6vw,1.4rem); color:var(--calque-doux); line-height:1.5; }
.read i{ font-style:italic; }
.read .on{ background:rgba(62,210,155,.2); color:var(--vert); border-radius:6px; padding:2px 10px; font-weight:600; }
.read .but{ background:rgba(240,104,122,.18); color:var(--rouge); border-radius:6px; padding:2px 10px; font-weight:600; }
table.tc{ border-collapse:separate; border-spacing:6px; margin:0 auto; }
table.tc th{ font-family:var(--mono); font-weight:400; font-size:clamp(.9rem,1.25vw,1.1rem); color:var(--calque); padding:8px 14px; }
table.tc th.pa{ background:rgba(79,124,246,.22); border-radius:10px 10px 0 0; color:#9db7ff; letter-spacing:.06em; }
table.tc th.pe{ background:rgba(245,185,69,.16); color:var(--or); border-radius:10px 0 0 10px; }
table.tc td{ width:clamp(74px,7.5vw,110px); height:clamp(64px,9vh,92px); text-align:center; border-radius:10px; }
table.tc td.ok{ background:rgba(62,210,155,.16); } table.tc td.ko{ background:rgba(240,104,122,.16); }
table.tc td img{ width:clamp(34px,3.6vw,50px); }
.toolshot{ display:grid; grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:clamp(18px,2.6vw,44px); align-items:center; }
.toolshot .shot{ border-color:rgba(52,214,238,.3); box-shadow:0 30px 70px -30px rgba(0,0,0,.95); }
.toolshot .shot img{ max-height:64vh; object-fit:contain; }
.tlinks{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.tlinks .demolink{ max-width:100%; overflow-wrap:anywhere; }
.demolink .tag{ white-space:nowrap; flex:none; }

/* ---------- 05 · le casque ---------- */
.helmet{ display:grid; grid-template-columns:2.2fr 1fr; gap:clamp(14px,2vw,30px); align-items:center; }
.helmet .paper img{ max-height:60vh; }
.psllm{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr); grid-template-rows:auto auto; gap:clamp(12px,1.6vw,22px); align-items:center; }
.psllm .tall{ grid-row:span 2; height:66vh; justify-self:end; aspect-ratio:1374/1479; max-width:100%; }
.psllm .g img, .psllm .t img{ max-height:30vh; }

/* ---------- 06 · expérimentations ---------- */
.slide.film{ gap:clamp(8px,1.4vh,16px); }
.slide.film .vidfig video{ max-height:min(72vh,860px); width:auto; max-width:100%; }
.vidfig figcaption{ font-size:.74rem; }
.vidfig.mini video{ max-height:52vh; }

/* ---------- 07 · des succès industriels ---------- */
.mosaic.flacons{ display:grid; grid-template-columns:1.15fr .8fr 1fr 1fr; grid-template-rows:repeat(2,minmax(0,31vh)); gap:clamp(8px,1vw,14px); }
.mosaic figure{ border-radius:12px; overflow:hidden; border:1px solid var(--trait); background:#0a0e1f; }
.mosaic figure img{ width:100%; height:100%; object-fit:cover; display:block; }
.mosaic .tall{ grid-row:span 2; }
.mosaic .wide2{ grid-column:span 2; }
.perf{ display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(10px,1.6vh,18px) clamp(16px,2.2vw,34px); align-items:center; }
.perf .contra{ border:1px solid rgba(240,104,122,.45); border-left:3px solid var(--rouge); border-radius:0 14px 14px 0; background:rgba(240,104,122,.07); padding:16px 20px; }
.perf .contra p{ font-family:var(--display); font-size:clamp(1.15rem,1.9vw,1.7rem); line-height:1.3; color:var(--calque); }
.perf .contra b{ color:var(--or); font-weight:600; }
.perf .src2{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; }
.perf .src2 .paper{ width:clamp(110px,11vw,170px); padding:5px; }
.perf .src2 .cite{ font-size:clamp(.74rem,.95vw,.88rem); line-height:1.5; }
.perf .principle{ grid-column:span 2; justify-self:center; font-family:var(--display); font-size:clamp(1.1rem,1.8vw,1.55rem); color:var(--calque);
  border:1px solid rgba(245,185,69,.5); border-radius:999px; padding:8px 24px; background:rgba(245,185,69,.08); }
.perf .principle span{ color:var(--or); font-weight:600; margin-right:10px; }
.perf .bottles{ grid-column:span 2; display:grid; grid-template-columns:repeat(4,auto); justify-content:center; gap:clamp(12px,1.6vw,24px); align-items:center; }
.perf .bottles figure{ height:44vh; border-radius:12px; overflow:hidden; }
.perf .bottles figure img{ height:100%; width:auto; display:block; object-fit:contain; }
.perf .bottles .paper{ padding:6px; }
.trio{ display:grid; gap:clamp(12px,1.6vw,24px); align-items:center; justify-content:center; }
.trio.mascara{ grid-template-columns:auto auto auto; }
.trio.mascara > *{ height:62vh; } .trio.mascara img{ height:100%; width:auto; display:block; object-fit:contain; }
.trio.mascara .paper{ padding:6px; }
.trio.bin{ grid-template-columns:auto auto auto; }
.trio.bin > *{ height:60vh; } .trio.bin img{ height:100%; width:auto; display:block; object-fit:contain; }
.quad4{ display:grid; grid-template-columns:1fr 1.15fr; grid-template-rows:repeat(2,minmax(0,31vh)); gap:clamp(10px,1.4vw,20px); }
.quad4 > *{ min-height:0; display:grid; place-items:center; }
.quad4 .shot{ background:transparent; border:0; }
.quad4 img{ max-height:100%; max-width:100%; width:auto; height:auto; object-fit:contain; border-radius:10px; }
.quad4 .paper{ display:block; padding:6px; width:100%; height:100%; } .quad4 .paper img{ width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; }

/* ---------- 08 · drone et prothèses ---------- */
.dronefig{ align-self:center; width:min(100%,calc(56vh * 2.11)); padding:8px; }
.prost{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr); gap:clamp(18px,3vw,50px); align-items:center; }
.prost .quote{ font-size:clamp(1.3rem,2.5vw,2.2rem); max-width:none; }
.pgrid{ display:flex; flex-direction:column; gap:clamp(8px,1.2vh,14px); }
.prow{ display:grid; grid-template-columns:clamp(110px,12vw,180px) repeat(3,1fr); gap:clamp(8px,1vw,14px); align-items:center; }
.prow b{ font-family:var(--display); font-size:clamp(.98rem,1.5vw,1.3rem); color:var(--or); line-height:1.15; }
.prow:nth-child(2) b{ color:var(--cyan); } .prow:nth-child(3) b{ color:var(--violet); } .prow:nth-child(4) b{ color:var(--vert); }
.prow figure{ height:17.5vh; border-radius:10px; overflow:hidden; border:1px solid var(--trait); background:#0a0e1f; }
.prow figure img{ width:100%; height:100%; object-fit:cover; display:block; }
.myo{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.62fr) minmax(0,1.5fr); grid-template-rows:auto auto auto; gap:clamp(10px,1.5vh,18px) clamp(12px,1.6vw,24px); align-items:center; }
.mbox{ border:1px solid var(--trait); border-radius:14px; background:rgba(27,37,71,.55); padding:12px 16px; }
.mbox small{ font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rouge); }
.mbox.c2 small{ color:var(--or); }
.mbox p{ margin-top:6px; font-size:clamp(.95rem,1.3vw,1.18rem); line-height:1.4; color:var(--calque); }
.mbox p b{ color:var(--or); font-weight:600; } .mbox p.pr{ color:var(--calque-doux); font-size:clamp(.84rem,1.08vw,1rem); }
.myo .c1{ grid-column:1; grid-row:1; border-left:3px solid var(--rouge); }
.myo .c2{ grid-column:1; grid-row:2; border-left:3px solid var(--or); }
.myo .f1{ grid-column:1; grid-row:3; justify-self:start; height:22vh; position:relative; }
.myo .f1 img{ height:100%; width:auto; }
.myo .f1 figcaption, .myo .f3 figcaption{ position:absolute; left:8px; bottom:8px; background:#fff; color:#1b2547; font-size:.74rem; padding:3px 9px; border-radius:6px; font-family:var(--corps); letter-spacing:0; text-transform:none; }
.myo .f2{ grid-column:2; grid-row:3; height:22vh; padding:5px; justify-self:center; } .myo .f2 img{ height:100%; width:auto; }
.myo .f3{ grid-column:3; grid-row:3; padding:6px; position:relative; max-height:24vh; } .myo .f3 img{ max-height:calc(24vh - 12px); }
.myo .f4{ grid-column:2 / span 2; grid-row:1 / span 2; padding:6px; justify-self:center; height:42vh; } .myo .f4 img{ height:100%; width:auto; }
.vers{ display:grid; grid-template-columns:auto minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.2fr); gap:clamp(10px,1.4vw,22px); align-items:start; }
.vers .vidfig{ grid-row:span 2; align-self:center; }
.ver h3{ font-family:var(--display); font-size:clamp(1.05rem,1.6vw,1.4rem); color:var(--cyan); margin-bottom:8px; }
.ver .paper{ padding:5px; }
.ver > .paper img{ max-height:30vh; }
.ver .v2{ display:grid; grid-template-columns:1fr .56fr; gap:8px; align-items:center; }
.ver .v2 img{ max-height:26vh; width:100%; object-fit:contain; display:block; }
.ver .v2 .shot{ background:transparent; border:0; }
.ver .elec{ display:grid; grid-template-columns:1.3fr 1fr; gap:8px; align-items:center; margin-top:8px; }
.ver .elec small{ grid-column:span 2; font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--calque-doux); }
.ver .elec img{ max-height:13vh; }
.vers .cost{ grid-column:2 / span 3; font-family:var(--display); font-size:clamp(1.05rem,1.75vw,1.55rem); line-height:1.35; color:var(--calque);
  border-left:3px solid var(--or); padding:6px 0 6px 18px; }
.vers .cost b{ color:var(--or); font-weight:600; }

/* ---------- 09 · échanges ---------- */
.qafig.paper{ background:none; box-shadow:none; padding:0; }
.qafig img{ max-height:70vh; width:auto; max-width:100%; margin:0 auto; filter:drop-shadow(0 30px 40px rgba(0,0,0,.55)); }

/* ---------- mise à jour 06/11 : logiciels de la Chaire, démonstrateurs ---------- */
.chipx{ font-family:var(--mono); font-size:clamp(.72rem,.95vw,.88rem); letter-spacing:.04em; color:var(--cyan); border:1px solid rgba(52,214,238,.45); background:rgba(52,214,238,.08); border-radius:999px; padding:4px 12px; white-space:nowrap; }
.tool2{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); gap:clamp(18px,2.6vw,46px); align-items:center; }
.tool2 .lead{ max-width:none; font-size:clamp(1.15rem,1.9vw,1.6rem); font-family:var(--display); line-height:1.3; }
.tool2 .note{ max-width:none; margin-top:14px; font-size:clamp(.95rem,1.25vw,1.14rem); }
.tool2 .note b{ display:block; font-family:var(--mono); font-weight:400; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rouge); margin-bottom:4px; }
.tool2 ul.tirets{ margin-top:16px; gap:8px; max-width:none; }
.tool2 ul.tirets li{ font-size:clamp(.98rem,1.3vw,1.18rem); color:var(--calque); }
.tmeta{ margin-top:18px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.tmeta .origin{ font-family:var(--mono); font-size:clamp(.72rem,.95vw,.86rem); letter-spacing:.06em; color:var(--or); border:1px solid rgba(245,185,69,.5); border-radius:999px; padding:6px 14px; }
.tmeta .demolink{ font-size:clamp(.8rem,1vw,.95rem); padding:6px 14px; overflow-wrap:anywhere; }
.vidfig.loop video{ max-height:min(64vh,760px); width:100%; height:auto; border-color:rgba(52,214,238,.35); }
.vidfig.loop figcaption{ font-size:.66rem; }
.tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(10px,1.3vw,18px); }
.tiles .t{ border-radius:12px; overflow:hidden; border:1px solid var(--trait); background:linear-gradient(180deg,rgba(27,37,71,.75),rgba(18,26,53,.6)); display:flex; flex-direction:column; }
.tiles .t img{ width:100%; height:clamp(110px,19vh,190px); object-fit:cover; object-position:top; display:block; background:#fff; }
.tiles .t figcaption{ padding:9px 12px 12px; }
.tiles .t b{ display:block; font-family:var(--display); font-size:clamp(1.05rem,1.55vw,1.35rem); color:var(--calque); }
.tiles .t span{ display:block; margin-top:3px; font-size:clamp(.74rem,.95vw,.9rem); color:var(--calque-doux); line-height:1.3; }
.foot{ font-family:var(--mono); font-size:clamp(.72rem,.95vw,.86rem); color:var(--calque-doux); letter-spacing:.03em; }
.platf{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(18px,2.6vw,46px); align-items:center; }
.platf .site{ border-color:rgba(52,214,238,.3); box-shadow:0 30px 70px -30px rgba(0,0,0,.95); background:#fff; }
.platf .site img{ max-height:64vh; object-fit:cover; object-position:top; }
.ptxt{ display:flex; flex-direction:column; gap:clamp(12px,2vh,22px); align-items:flex-start; }
.ptxt .devise{ font-family:var(--mono); font-size:clamp(.8rem,1.1vw,1rem); letter-spacing:.2em; text-transform:uppercase; color:var(--or); }
.ptxt ul.tirets{ max-width:none; }
.ptxt ul.tirets li{ font-size:clamp(1rem,1.4vw,1.25rem); }
.ptxt .ideas{ padding:6px; align-self:stretch; }
.injgrid{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(2,30vh); gap:clamp(10px,1.3vw,18px); align-items:stretch; }
.injgrid .paper{ padding:6px; display:flex; flex-direction:column; min-height:0; }
.injgrid .paper img{ flex:1; min-height:0; width:100%; height:auto; object-fit:contain; }
.patmat{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(18px,2.6vw,46px); align-items:center; }
.funnel{ display:flex; flex-direction:column; gap:clamp(8px,1.4vh,14px); align-items:center; }
.funnel .fl{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; padding:clamp(10px,1.6vh,18px) 22px; border-radius:14px; border:1px solid var(--trait); }
.funnel .fl b{ font-family:var(--display); font-size:clamp(1.6rem,3vw,2.6rem); line-height:1; }
.funnel .fl span{ font-size:clamp(.95rem,1.3vw,1.18rem); color:var(--calque); line-height:1.3; }
.funnel .f1{ width:100%; background:rgba(155,108,246,.14); } .funnel .f1 b{ color:var(--violet); }
.funnel .f2{ width:86%; background:rgba(52,214,238,.12); } .funnel .f2 b{ color:var(--cyan); }
.funnel .f3{ width:72%; background:rgba(245,185,69,.12); border-color:rgba(245,185,69,.45); } .funnel .f3 b{ color:var(--or); }
.funnel .fnote{ margin-top:8px; font-size:clamp(.9rem,1.2vw,1.08rem); color:var(--calque-doux); line-height:1.5; text-align:center; }
.funnel .fnote b{ color:var(--vert); font-weight:600; }
.patmat .mat{ padding:6px; height:66vh; justify-self:center; aspect-ratio:1242/1200; max-width:100%; }

/* ---------- fusion 06/11 : le canevas classique d'une recherche ---------- */
.chaine{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:clamp(22px,2.6vw,38px); align-items:stretch; }
.chaine .n{ position:relative; border:1px solid var(--trait); border-radius:14px; background:linear-gradient(180deg,rgba(27,37,71,.7),rgba(18,26,53,.55)); padding:clamp(12px,1.6vw,20px); }
.chaine .n small{ display:block; font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; color:var(--cyan); margin-bottom:8px; }
.chaine .n b{ font-family:var(--display); font-weight:600; font-size:clamp(1rem,1.55vw,1.4rem); line-height:1.2; color:var(--calque); }
.chaine .n:not(:last-child)::after{ content:"➜"; position:absolute; right:calc(-1 * clamp(22px,2.6vw,38px)); width:clamp(22px,2.6vw,38px); top:50%; transform:translateY(-50%); text-align:center; color:var(--or); font-size:1.1rem; }
.chaine.huit{ gap:clamp(14px,1.6vw,24px); }
.chaine.huit .n{ padding:clamp(10px,1.1vw,16px) clamp(8px,.9vw,14px); }
.chaine.huit .n b{ font-size:clamp(.86rem,1.2vw,1.12rem); }
.chaine.huit .n:not(:last-child)::after{ right:calc(-1 * clamp(14px,1.6vw,24px)); width:clamp(14px,1.6vw,24px); font-size:.9rem; }
.jalons{ margin-top:clamp(20px,4vh,40px); display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:7px; max-width:min(1100px,86vw); }
.jalons span{ flex-basis:100%; font-family:var(--mono); font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--calque-doux); margin-bottom:4px; }
.jalons i{ font-style:normal; font-family:var(--mono); font-size:clamp(.66rem,.9vw,.82rem); letter-spacing:.04em; color:rgba(151,163,199,.5); border:1px solid rgba(238,241,251,.1); border-radius:999px; padding:5px 12px; }
.jalons i.on{ color:#0a0e1f; background:linear-gradient(100deg,var(--violet),var(--cyan)); border-color:transparent; font-weight:600; }
.ed li b small.jt{ display:block; font-family:var(--mono); font-weight:400; font-size:.6em; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); margin-bottom:2px; }
.cards.c5{ grid-template-columns:repeat(5,1fr); }
.tri .k, .vote .big{ display:block; font-family:var(--mono); font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:10px; }
.tri .k.violet{ color:var(--violet); } .tri .k.cyan{ color:var(--cyan); } .tri .k.or{ color:var(--or); } .tri .k.rouge{ color:var(--rouge); } .tri .k.vert{ color:var(--vert); }
.tri .card h3{ font-family:var(--display); font-size:clamp(1.15rem,1.8vw,1.55rem); }
.vote .big{ font-family:var(--display); font-size:clamp(2rem,3.6vw,3rem); letter-spacing:0; color:var(--or); margin-bottom:4px; }
.verdict{ font-family:var(--display); font-size:clamp(1.15rem,1.9vw,1.6rem); line-height:1.35; color:var(--calque); border-left:3px solid var(--vert); padding:4px 0 4px 18px; max-width:80ch; }
.verdict b{ color:var(--vert); }
.entonnoir{ display:flex; flex-direction:column; align-items:center; gap:clamp(8px,1.4vh,14px); }
.entonnoir .e{ border-radius:14px; border:1px solid var(--trait); padding:clamp(10px,1.5vh,16px) 24px; text-align:center; }
.entonnoir .e small{ font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; }
.entonnoir .e p{ margin-top:4px; font-family:var(--display); font-size:clamp(1.1rem,1.9vw,1.65rem); line-height:1.25; color:var(--calque); }
.entonnoir .e1{ width:100%; background:rgba(155,108,246,.13); } .entonnoir .e1 small{ color:var(--violet); }
.entonnoir .e2{ width:84%; background:rgba(52,214,238,.11); } .entonnoir .e2 small{ color:var(--cyan); }
.entonnoir .e3{ width:68%; background:rgba(245,185,69,.12); border-color:rgba(245,185,69,.45); } .entonnoir .e3 small{ color:var(--or); }
.entonnoir .qual{ margin-top:10px; font-size:clamp(1rem,1.4vw,1.25rem); color:var(--calque-doux); } .entonnoir .qual b{ color:var(--calque); }
.quote.hyp{ font-size:clamp(1.05rem,1.75vw,1.5rem); max-width:none; line-height:1.3; }
.vs.vs3, body.print .vs.vs3{ grid-template-columns:repeat(3,1fr) !important; }
.cards.c3.tri, .cards.c3.vote{ grid-template-columns:repeat(3,1fr) !important; }
.cards.c5.tri{ grid-template-columns:repeat(5,1fr) !important; }
.eda{ align-items:start; }
.sources{ display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.sources .or2{ font-family:var(--display); font-size:clamp(1.2rem,2vw,1.7rem); line-height:1.25; color:var(--or); }
.sources .small2{ font-size:clamp(.88rem,1.1vw,1rem); color:var(--calque-doux); line-height:1.5; }
.stats.livr{ grid-template-columns:repeat(4,1fr); }
.stat .v.txt{ font-size:clamp(1.8rem,3.6vw,2.9rem); }

/* ---------- impression ---------- */
body.print .stat .v, body.print .cover-num{ background:none; -webkit-background-clip:border-box; background-clip:border-box; color:var(--cyan); -webkit-text-fill-color:var(--cyan); }
body.print .jalons i.on{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
body.print .stat .v.or{ color:var(--or); -webkit-text-fill-color:var(--or); }
body.print .is-step{ opacity:1 !important; transform:none !important; }
body.print .limits .q.is-step{ transform:translateY(-50%) !important; }
body.print .vidfig video{ display:none; } body.print .vidfig .poster{ display:block; max-height:min(66vh,760px); max-width:100%; border-radius:12px; }
