/* Continuité visuelle des pages publiques rendues côté serveur, sans dépendance React. */
.bl-head a:focus-visible, .bl-head summary:focus-visible, .bl-foot a:focus-visible { outline: 2px solid #b6a6ef; outline-offset: 5px; }
.bl-head { position: sticky; top: 0; z-index: 100; min-height: 84px; max-width: none; padding: 18px max(32px, calc((100vw - 1240px) / 2)); background: #09090eeb; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border-bottom: 1px solid #ffffff0c; gap: 28px; }
.bl-logo { font-size: 23px; font-weight: 600; letter-spacing: -.045em; }
.bl-logo img { border-radius: 0; object-fit: contain; }
.bl-nav { gap: 29px; }
.bl-nav a { color: #a9a5b5; font-size: 13px; font-weight: 400; }
.bl-nav a.is-active { color: #cdb9ec; }
.bl-ghost { min-height: 44px; display: flex; align-items: center; font-weight: 400; font-size: 12px; border-radius: 7px; background: #ffffff07; border-color: #ffffff24; }
.bl-hero { padding-top: 64px; padding-bottom: 28px; }
.bl-hero h1 { font-size: clamp(36px, 5.5vw, 66px); font-weight: 500; letter-spacing: -.055em; line-height: 1.12; }
.bl-hero h1 .au { background: none; color: #b6a6ef; -webkit-text-fill-color: currentColor; }
.bl-sub { color: #a4a2b1; font-size: 17px; }
.bl-chip { border-radius: 7px; font-weight: 500; min-height: 44px; }
.bl-chip:hover { border-color: #8a73a4; }
.bl-chip.is-active { background: #e8dff6; color: #211b2a; }
.bl-chip.is-active span { color: #51405f; }
.bl-card { border-radius: 12px; background: #111116; border-color: #29262f; }
.bl-card:hover { border-color: #766483; box-shadow: 0 14px 34px #0005; }
.bl-card-body { padding: 24px; }
.bl-card-body .t { font-weight: 500; font-size: 21px; letter-spacing: -.025em; }
.bl-card-body .d { font-size: 16px; color: #a4a2b1; line-height: 1.65; }
.bl-card-body .m { color: #9993a5; }
.bl-cta, .bl-cta-box a { background: #e8dff6; color: #211b2a !important; border-radius: 8px; }
.bl-cta-box { background: #18131e; border-color: #493551; }
.bl-cta-box h3 { color: #e7d9f8; }
.bl-disc { color: #928b9e; font-size: 12px; }
.bl-copy { color: #a09aaa; }
.bl-foot-links a { min-height: 36px; display: inline-flex; align-items: center; }
.bl-mobile-menu { display: none; }
@media (max-width: 1050px) {
  .bl-nav { display: none; }
  .bl-head { gap: 10px; }
  .bl-actions { margin-left: auto; }
  .bl-mobile-menu { display: block; }
  .bl-mobile-menu summary { display: flex; align-items: center; justify-content: center; border: 1px solid #ffffff24; min-height: 44px; padding: 8px 12px; border-radius: 7px; font-size: 13px; cursor: pointer; list-style: none; }
  .bl-mobile-menu summary::-webkit-details-marker { display: none; }
  .bl-mobile-menu nav { position: absolute; top: 100%; inset-inline: 0; background: #111015; border-bottom: 1px solid #302a38; padding: 16px 24px; box-shadow: 0 20px 30px #0005; }
  .bl-mobile-menu nav a { display: block; padding: 12px 0; text-decoration: none; color: #e9e3f3; border-bottom: 1px solid #ffffff0b; }
}
@media (max-width: 560px) {
  .bl-head { min-height: 72px; padding: 14px 20px; }
  .bl-logo { font-size: 21px; gap: 8px; }
  .bl-logo img { width: 32px; height: 32px; }
  .bl-actions .bl-ghost { display: flex; padding: 8px 10px; font-size: 11px; }
  .bl-hero { padding-top: 36px; }
  .bl-hero h1 { font-size: 38px; }
  .bl-foot-links { gap: 6px 18px; }
  .bl-foot-links a { min-height: 44px; }
  .bl-card-body { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) { .bl-card, .bl-chip, .bl-nav a { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
