/* lab.devlooper.io — styles complémentaires à Tailwind (cf. components/head.php
   pour la config des tokens). Sous-ensemble volontairement réduit de
   vitrine/public/assets/css/app.css : lab.devlooper.io n'a pas besoin de la
   mécanique de header sticky animé, du CTA collant mobile ni des
   micro-illustrations du ruler de navigation de devlooper.io. */

html { scroll-behavior: smooth; }
body { font-feature-settings: "ss01"; }
::selection { background: #C3D0E8; color: #171F35; }

.devlooper-logo svg { display: block; height: 1.375rem; width: auto; }

.lab-subheader {
  position: relative;
  z-index: 40;
  border-bottom: 1px solid #E1DBCC;
  background: #F8F6F1;
  font-size: 12.5px;
  line-height: 1.4;
}
.lab-subheader__text { margin: 0; color: #5B6478; }
.lab-subheader__text a { color: #1E2436; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.lab-subheader__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.85rem;
  padding: 0 .85rem;
  border-radius: 999px;
  background: #1E2436;
  color: #F8F6F1;
  font-weight: 650;
  font-size: 12px;
  white-space: nowrap;
}
.lab-auth-icon {
  display: inline-grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  border: 1px solid #E1DBCC;
  background: #EFEAE0;
  color: #1E2436;
  cursor: pointer;
}
.lab-auth-icon:hover { background: #E3E9F5; }
.lab-auth-icon .material-symbols-outlined { font-size: 1.25rem; }
.lab-flash {
  margin: 0 0 1rem;
  padding: .75rem 1rem;
  border-radius: .85rem;
  font-size: .9rem;
}
.lab-flash--error { background: #FDECEC; color: #8A1F1F; }
.lab-flash--success { background: #EDF7F5; color: #124E49; }

.mesh-glow {
  background: radial-gradient(60% 60% at 30% 20%, rgba(78,102,164,0.14) 0%, rgba(78,102,164,0) 60%),
              radial-gradient(50% 50% at 85% 15%, rgba(31,122,114,0.12) 0%, rgba(31,122,114,0) 60%);
}

.infinity-divider { height: 1px; background: linear-gradient(90deg, transparent, #D8D1BE, transparent); }

.reveal { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

input:focus, textarea:focus, select:focus, button:focus-visible, a:focus-visible {
  outline: 2px solid #4E66A4; outline-offset: 2px;
}

.legal-article h2 { font-size: 1.15rem; margin: 1.75rem 0 .6rem; }
.legal-article p, .legal-article li { color: #5B6478; font-size: 15px; line-height: 1.65; }
.legal-article ul { margin: .4rem 0 1rem 1.1rem; list-style: disc; }
.legal-kicker { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: #8890A0; }
.legal-intro { font-size: 1.05rem !important; color: #1E2436 !important; }
