{{ meta.title }}
{# Open Graph / Twitter #}
{# Favicons / manifest (S-040) #}
{# Google Fonts (S-039) #}
{# JSON-LD global (SPEC §10) #}
{{ json_ld(jsonld_organization()) }}
{{ json_ld(jsonld_local_business()) }}
{% block json_ld %}{% endblock %}
{% block stylesheets %}
{{ encore_entry_link_tags('app') }}
{% endblock %}
{%- if gsc_verification %}{% endif %}
{# Consent Mode v2 (CNIL) : analytics refusé par défaut, mis à jour au consentement (S-118/119) #}
{%- if gtm_id or ga_id %}
{%- endif %}
{# Google Tag Manager #}
{%- if gtm_id %}
{%- endif %}
{%- if ga_id %}
{%- endif %}
{# reCAPTCHA n'est PAS chargé ici : aucun des deux gabarits qui étendent
ce fichier ne porte de formulaire, et les pages qui en ont un le
chargent elles-mêmes. #}
{%- if gtm_id %}
{%- endif %}
Aller au contenu
{% include 'components/header.html.twig' %}
{% include 'components/mobile-menu.html.twig' %}
{% include 'components/flash.html.twig' %}
{% block body %}{% endblock %}
{% include 'components/footer.html.twig' %}
{% include 'components/chatbot-widget.html.twig' %}
{% include 'components/cookie-banner.html.twig' %}
{# Les liens vers une page décochée dans le back-office restent visibles :
le visiteur qui clique tombe sur la page « introuvable », ce qui est
voulu. Pour les masquer à nouveau, réinclure ici
components/hide-inactive-links.html.twig, qui fait ce travail. #}
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
{% endblock %}