{# # ============================================================================ # LEGAL LAYOUT — Sommaire sticky gauche + accordéon droit # ============================================================================ # # Utilisé via {% embed %} dans les pages légales. # Paramètres passés par with {} : # pageTitle string Titre de la page (h1) # lastUpdate string Date de dernière mise à jour # sections array [{id, title}] — pour le sommaire uniquement # Le contenu de l'accordéon est rendu dans {% block legal_content %}. # # sticky sur l'aside directement (pas sur un enfant interne) : # - Au chargement, le TOC est à sa position naturelle sous le header gris # - Au scroll, il se colle à top: 5.5rem (sous la navbar fixed ~64px) # - self-start évite l'étirement (le TOC ne prend que la hauteur de son contenu) # - L'inner div a overflow-y-auto pour les longs sommaires # ============================================================================ #} {# ── En-tête de page — pt-24 pour dégager la navbar fixed ── #}

Bubul.app

{{ pageTitle }}

Dernière mise à jour : {{ lastUpdate }}

{# ── Corps principal ── #}
{# ── Sommaire — sticky sur l'aside directement ── self-start empêche l'étirement sur toute la hauteur du contenu. top: 5.5rem = sous la navbar fixed (≈64px) + 24px de marge. L'inner div a overflow-y-auto pour les longs sommaires (25 sections). ── #} {# ── Contenu ── #}
{# Sommaire mobile #}
{# Sections accordéon — rendu par le template enfant via embed #} {% block legal_content %}{% endblock %}
{# ── Script TOC : ouvre la section cible + scroll avec offset navbar ── #} {% include '_organisms/landing/footer.html.twig' with { tagline: "Des outils IA pensés pour les formateurs — créez, déployez et pilotez vos formations depuis un seul espace." } only %}