/* ============ SOLUTIONS : page des démos animées ============
   Fichier propre à la page Solutions (le reste du site n'est pas modifié).
   Reprend la typographie, les couleurs d'accent et les cartes de la section Solutions de l'Accueil. */

/* ---------- en-tête : légende des étiquettes + raccourcis ---------- */
.rl-legend{list-style:none;margin:30px auto 0;padding:0;max-width:1020px;display:flex;flex-wrap:wrap;justify-content:center;gap:16px 44px;text-align:left}
.rl-legend[hidden],.rl-nav[hidden]{display:none}
.rl-legend li{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:330px}
.rl-legend-t{font:500 13.5px/1.5 var(--font-ui);color:var(--text-dim);max-width:34ch}
.rl-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:26px auto 0}
.rl-chip{display:inline-flex;align-items:center;padding:10px 18px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);font:600 14px var(--font-ui);color:var(--text-dim);text-decoration:none;transition:border-color var(--t-base) var(--ease-out), color var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out)}
.rl-chip:hover{border-color:var(--navy);color:var(--navy)}
.rl-chip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.rl-chip:active{transform:scale(.97)}

/* étiquettes de statut : Projet réel / Démo / Exemple */
.rl-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:var(--radius-full);font:700 12px/1.2 var(--font-ui);letter-spacing:.01em;white-space:nowrap}
.rl-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.rl-tag--reel{background:var(--p-teal-bg);color:var(--p-teal-tx)}
.rl-tag--demo{background:var(--p-blue-bg);color:var(--p-blue-tx)}
.rl-tag--exemple{background:var(--p-amber-bg);color:var(--p-amber-tx)}

/* ---------- liste des blocs ---------- */
.rl{padding:8px 0 110px}
.rl .wrap{max-width:1244px}
.rl-list{display:flex;flex-direction:column;gap:30px}
.rl-block{
  --ac-bg:var(--p-blue-bg);--ac-tx:var(--p-blue-tx);--ac-bar:var(--blue);
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-md);
  overflow:hidden;scroll-margin-top:100px;
}
.rl-block[data-accent="teal"]{--ac-bg:var(--p-teal-bg);--ac-tx:var(--p-teal-tx);--ac-bar:#12A07A}
.rl-block[data-accent="amber"]{--ac-bg:var(--p-amber-bg);--ac-tx:var(--p-amber-tx);--ac-bar:#E0A100}
.rl-block[data-accent="coral"]{--ac-bg:var(--p-coral-bg);--ac-tx:var(--p-coral-tx);--ac-bar:#E8523C}
.rl-block.is-rev{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
.rl-block.is-rev .rl-text{order:2}

.rl-text{padding:40px 38px 36px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}
.rl-icon{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;flex:none;background:var(--ac-bg);color:var(--ac-tx)}
.rl-icon svg{width:22px;height:22px}
.rl-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}
.rl-kicker{font:800 13px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--ac-tx)}
.rl-block h2{font-size:clamp(1.4rem, 2.1vw, 1.85rem);line-height:1.2;letter-spacing:-.01em;margin-bottom:18px;max-width:24ch}
.rl-line{margin:0 0 14px;display:flex;flex-direction:column;gap:3px;font-size:1rem;line-height:1.55;color:var(--text-dim);max-width:46ch}
.rl-line b{font:700 11px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}
.rl-line--sol b{color:var(--ac-tx)}
.rl-line--sol span{color:var(--text)}
.rl-points{list-style:none;margin:10px 0 28px;padding:0;display:flex;flex-direction:column;gap:10px}
.rl-points li{display:flex;align-items:flex-start;gap:10px;font:500 14.5px/1.45 var(--font-ui);color:var(--text)}
.rl-points svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--ac-tx)}
.rl-arrow{display:inline-flex}

/* ---------- la démo ---------- */
.rl-demo{
  position:relative;min-width:0;padding:28px 28px 22px;
  display:flex;flex-direction:column;justify-content:center;gap:18px;
  background-color:var(--bg);
  background-image:radial-gradient(circle, var(--border-strong) 1.1px, transparent 1.1px);
  background-size:22px 22px;
  border-left:1px solid var(--border);
}
.rl-block.is-rev .rl-demo{border-left:0;border-right:1px solid var(--border)}
.rl-frame{position:relative;padding-bottom:10px}

/* onglets : plusieurs exemples dans un même bloc */
.rl-demo-in{display:flex;flex-direction:column;gap:18px;min-width:0}
.rl-demo-in[hidden]{display:none}
.rl-tabs{display:flex;flex-wrap:wrap;gap:8px}
.rl-tab{height:38px;padding:0 17px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);font:600 13.5px var(--font-ui);color:var(--text-dim);cursor:pointer;transition:background var(--t-base) var(--ease-out), color var(--t-base) var(--ease-out), border-color var(--t-base) var(--ease-out)}
.rl-tab:hover{border-color:var(--navy);color:var(--navy)}
.rl-tab[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.rl-tab:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* cadres d'appareil */
.rl-device{position:relative}
.rl-device--laptop{background:#0B1224;border-radius:14px 14px 4px 4px;padding:9px;box-shadow:var(--shadow-lg)}
.rl-device--laptop::before{content:"";position:absolute;top:3px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#2A3652;z-index:2}
.rl-device--laptop::after{content:"";position:absolute;left:-3.2%;right:-3.2%;bottom:-9px;height:9px;border-radius:0 0 14px 14px;background:linear-gradient(#DDE2EC,#BAC2D2);box-shadow:0 12px 22px -10px rgba(3,15,37,.4)}
.rl-device--browser{background:#fff;border-radius:14px;border:1px solid #CBD2E0;box-shadow:var(--shadow-lg);overflow:hidden}
.rl-chrome{display:flex;align-items:center;gap:12px;height:34px;padding:0 12px;background:#EEF1F6;border-bottom:1px solid #D5DAE5}
.rl-dots{display:flex;gap:6px;flex:none}.rl-dots i{width:9px;height:9px;border-radius:50%;background:#C5CBD8;display:block}
.rl-url{flex:1;max-width:260px;margin:0 auto;height:22px;border-radius:11px;background:#fff;border:1px solid #DDE2EC;color:#5B6478;font:500 11px/20px var(--font-ui);text-align:center;overflow:hidden;white-space:nowrap}
.rl-device--browser .rl-screen{border-radius:0}
.rl-device--tablet{background:#0B1224;border-radius:30px;padding:14px;box-shadow:var(--shadow-lg)}
.rl-device--tablet::before{content:"";position:absolute;top:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#2A3652;z-index:2}
.rl-device--tablet .rl-screen{border-radius:12px}
.rl-device--phone{width:min(262px,66%);margin:0 auto;background:#0B1224;border-radius:40px;padding:9px;box-shadow:var(--shadow-lg)}
.rl-device--phone::before{content:"";position:absolute;top:17px;left:50%;width:27%;height:9px;margin-left:-13.5%;border-radius:99px;background:#0B1224;z-index:3}
.rl-screen{position:relative;overflow:hidden;border-radius:6px;background:#EEF1F6;width:100%}
.rl-device--phone .rl-screen{border-radius:32px}
.rl-screen.is-loading{background:linear-gradient(100deg,#EEF1F6 30%,#F8FAFD 50%,#EEF1F6 70%);background-size:220% 100%;animation:rlShim 1.5s linear infinite}
@keyframes rlShim{from{background-position:120% 0}to{background-position:-120% 0}}

.rl-cam{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.rl-stage{position:absolute;inset:0;container-type:inline-size}
.rl-img{position:absolute;inset:0;width:100%;height:100%;opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none}
.rl-patch{position:absolute;z-index:3;opacity:.001;pointer-events:none}
.rl-hl{position:absolute;z-index:5;border-radius:.6cqw;background:rgba(0,137,230,.07);box-shadow:0 0 0 .22cqw var(--blue),0 0 0 .9cqw rgba(0,137,230,.16);opacity:0;pointer-events:none}
.rl-type{position:absolute;z-index:6;display:flex;align-items:center;padding-left:.45cqw;background:#fff;color:#111827;font:500 .74cqw/1 var(--font-ui);white-space:nowrap;overflow:hidden;opacity:0;pointer-events:none}
.rl-type.is-multi{display:block;white-space:normal;line-height:1.55cqw;font-weight:400}
.rl-type.is-multi::after{display:inline-block;vertical-align:text-bottom}
.rl-type::after{content:"";flex:none;width:.09cqw;height:1.15em;margin-left:.12cqw;background:currentColor;animation:rlCaret 1s steps(1) infinite}
@keyframes rlCaret{50%{opacity:0}}
.rl-cursor{position:absolute;z-index:8;left:0;top:0;opacity:0;transform-origin:0 0;pointer-events:none;will-change:transform,opacity}
.rl-cursor--souris{width:22px;height:22px;filter:drop-shadow(0 1px 2px rgba(3,15,37,.45))}
.rl-cursor--souris svg{display:block;width:100%;height:100%}
.rl-cursor--doigt{width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:rgba(3,15,37,.3);border:2px solid #fff;transform-origin:50% 50%;box-shadow:0 2px 8px rgba(3,15,37,.3)}
.rl-ripple{position:absolute;z-index:7;left:0;top:0;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:2px solid var(--blue);background:rgba(0,137,230,.14);opacity:0;pointer-events:none;will-change:transform,opacity}

/* lancement par toucher (écrans tactiles) */
.rl-play{position:absolute;inset:0 0 10px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:0;padding:0;border-radius:14px;background:rgba(3,15,37,.38);color:#fff;cursor:pointer;z-index:5;-webkit-tap-highlight-color:transparent}
.rl-play[hidden]{display:none}
.rl-play-c{width:64px;height:64px;border-radius:50%;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px rgba(3,15,37,.5)}
.rl-play-c svg{width:26px;height:26px;margin-left:3px}
.rl-play-t{font:700 14px var(--font-ui);text-shadow:0 1px 8px rgba(3,15,37,.6)}
.rl-play:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* légendes des 3 étapes */
.rl-legendes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rl-legendes li{position:relative;display:flex;align-items:flex-start;gap:9px;padding:12px 12px 15px;border-radius:12px;background:rgba(255,255,255,.72);border:1px solid var(--border);font:500 13px/1.4 var(--font-ui);color:var(--text-dim);overflow:hidden;transition:background var(--t-base) var(--ease-out), color var(--t-base) var(--ease-out), border-color var(--t-base) var(--ease-out), box-shadow var(--t-base) var(--ease-out)}
.rl-n{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--text-dim);font:700 12px var(--font-ui);transition:background var(--t-base) var(--ease-out), color var(--t-base) var(--ease-out)}
.rl-legendes li.is-on{background:#fff;border-color:var(--border-strong);color:var(--navy);box-shadow:var(--shadow-sm)}
.rl-legendes li.is-on .rl-n{background:var(--ac-bar);color:#fff}
.rl-legendes li.is-done .rl-n{background:var(--ac-bg);color:var(--ac-tx)}
.rl-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ac-bar);transform-origin:0 50%;transform:scaleX(var(--p,0));opacity:0}
.rl-legendes li.is-on .rl-bar{opacity:1}
.rl-demo.is-static .rl-bar{display:none}

/* note + boutons */
.rl-meta{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.rl-fict{margin:0;font:500 12.5px/1.45 var(--font-ui);color:var(--text-dim);max-width:46ch}
.rl-ctrl{display:flex;gap:8px;margin-left:auto}
.rl-btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px 0 12px;border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--navy);font:600 13px var(--font-ui);cursor:pointer;transition:border-color var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out)}
.rl-btn:hover{border-color:var(--navy)}
.rl-btn:active{transform:scale(.97)}
.rl-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.rl-ico{display:inline-flex}
.rl-btn svg{width:14px;height:14px}

/* apparition douce des blocs */
.rl-reveal{opacity:0;transform:translateY(26px);transition:opacity 700ms var(--ease-out), transform 700ms var(--ease-out)}
.rl-reveal.is-in{opacity:1;transform:none}

/* ---------- tablette et mobile ---------- */
@media (max-width:1020px){
  .rl-text{padding:34px 28px 30px}
  .rl-demo{padding:22px 20px 18px}
  .rl-legendes{grid-template-columns:1fr}
  .rl-legendes li{padding:10px 12px 13px}
}
@media (max-width:860px){
  .rl .wrap{padding:0 18px}
  .rl{padding-bottom:80px}
  .rl-list{gap:22px}
  .rl-block,.rl-block.is-rev{grid-template-columns:minmax(0,1fr)}
  .rl-block.is-rev .rl-text{order:0}
  .rl-text{padding:28px 22px 26px}
  .rl-demo,.rl-block.is-rev .rl-demo{border-left:0;border-right:0;border-top:1px solid var(--border);padding:22px 16px 20px}
  .rl-kicker{font-size:clamp(16px,4.6vw,20px);letter-spacing:.05em}
  .rl-block h2{font-size:clamp(1.45rem,6.2vw,1.75rem)}
  .rl-legend{flex-direction:column;flex-wrap:nowrap;align-items:flex-start;max-width:420px;gap:14px;margin-top:24px}
  .rl-legend-t{max-width:none}
  .rl-device--phone{width:min(250px,72%)}
}
@media (max-width:480px){
  .rl-text .btn{width:100%;justify-content:center}
  .rl-meta{flex-direction:column;align-items:flex-start}
  .rl-ctrl{margin-left:0}
}
@media (pointer:coarse){
  .rl-btn{height:44px;padding:0 18px 0 16px}
  .rl-chip{min-height:44px}
}
@media (prefers-reduced-motion:reduce){
  .rl-reveal{opacity:1;transform:none}
  .rl-screen.is-loading{animation:none}
}
