feat(marketing): A-2.8b /conformite + /contact standalone pages

- /conformite page: extends base.html, page H1 with cosmic orb header,
  4 pillar cards on white (mirrors landing's Conformite section content
  with same hedges 'Mappe' 'concue avec' 'Compatible'), 3 Loi 25 article
  detail cards (art. 3.3 EFVP, art. 3.5 Audit trail, art. 14 Consentement)
  with grad-bg article-number badges, AGPL v3 transparency CTA section
  with external links to Gitea + gnu.org (rel=noopener), generic CTA section
- /contact page: extends base.html, 3 method cards (email, phone tel:link,
  postal address with <address>), 6 pre-filled mailto subject shortcuts
  with focus-visible WCAG 2.2 AA, pre-launch disclaimer that online form
  ships at launch (B-2.x). NO <form> tag - mailto only - POST returns 405
  until B-2.x adds the form handler.
- routes.py: add /conformite and /contact routes; preserves existing
  landing/tarifs/fonctionnalites views and TESTIMONIALS/FAQ data.
- tests: append 13 new tests to test_marketing_secondary_pages.py covering
  routes 200, single H1, 4 pillars + Loi 25 articles + AGPL externals on
  /conformite, 3 contact methods + 6 shortcuts + 405 on POST + pre-launch
  note + OQLF typography on /contact.
- Apply established WCAG 2.2 AA, FlexiHub, OQLF, LPC art. 219 disciplines.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Allison
2026-04-27 21:23:47 -04:00
parent 202e1a08d9
commit 3646a5e64d
5 changed files with 430 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
{% extends 'marketing/base.html' %}
{% block title %}Contact DictIA — info@dictia.ca, (581) 996-8471, Inverness QC{% endblock %}
{% block description %}Joignez DictIA Inc. à info@dictia.ca ou (581) 996-8471. Bureau au 77 ch. de la Seigneurie, Inverness QC. Réponse sous 2 jours ouvrables.{% endblock %}
{% block content %}
{# ===== HEADER ===== #}
<section class="bg-brand-navy text-white py-20" aria-labelledby="page-title">
<div class="max-w-[820px] mx-auto px-6 text-center">
<p class="eyebrow grad-text mb-4">CONTACT</p>
<h1 id="page-title" class="text-[clamp(2.25rem,4vw,3.5rem)] font-black mb-4">
Parlons <span class="grad-text">de votre projet</span>.
</h1>
<p class="text-lg text-white/80">
Réponse sous 2&nbsp;jours ouvrables. Pour les urgences techniques des clients existants, voyez la console DictIA → Support.
</p>
</div>
</section>
{# ===== CONTACT METHODS ===== #}
<section class="bg-brand-bg py-20" aria-labelledby="methods-title">
<div class="max-w-[1060px] mx-auto px-6">
<h2 id="methods-title" class="sr-only">Trois manières de nous joindre</h2>
<div class="grid md:grid-cols-3 gap-6">
{# Email card #}
<article class="bg-white p-8 rounded-[18px] border border-brand-border flex flex-col">
<div class="w-12 h-12 grad-bg rounded-[0.5rem] mb-4 flex items-center justify-center text-2xl shadow-cta" aria-hidden="true">✉️</div>
<h3 class="text-lg font-bold mb-2 text-brand-navy">Courriel</h3>
<p class="text-sm text-brand-navy/80 mb-4 leading-relaxed flex-grow">
Privilégiez le courriel pour&nbsp;: pré-inscription, devis, démonstration, dossier de conformité, partenariats.
</p>
<a href="mailto:info@dictia.ca" class="grad-text font-semibold text-base hover:underline">info@dictia.ca</a>
</article>
{# Phone card #}
<article class="bg-white p-8 rounded-[18px] border border-brand-border flex flex-col">
<div class="w-12 h-12 grad-bg rounded-[0.5rem] mb-4 flex items-center justify-center text-2xl shadow-cta" aria-hidden="true">☎️</div>
<h3 class="text-lg font-bold mb-2 text-brand-navy">Téléphone</h3>
<p class="text-sm text-brand-navy/80 mb-4 leading-relaxed flex-grow">
Du lundi au vendredi, 9&nbsp;h à 17&nbsp;h (heure de l'Est). Laissez un message en dehors de ces heures.
</p>
<a href="tel:+15819968471" class="grad-text font-semibold text-base hover:underline">(581)&nbsp;996-8471</a>
</article>
{# Mailing address card #}
<article class="bg-white p-8 rounded-[18px] border border-brand-border flex flex-col">
<div class="w-12 h-12 grad-bg rounded-[0.5rem] mb-4 flex items-center justify-center text-2xl shadow-cta" aria-hidden="true">📬</div>
<h3 class="text-lg font-bold mb-2 text-brand-navy">Bureau</h3>
<p class="text-sm text-brand-navy/80 mb-4 leading-relaxed flex-grow">
Sur rendez-vous uniquement. Visites en personne pour démonstrations on-premise et déploiements DictIA 16 corporatifs.
</p>
<address class="not-italic text-sm text-brand-navy/80 leading-relaxed">
77&nbsp;ch. de la Seigneurie<br>
Inverness QC G0S&nbsp;1K0
</address>
</article>
</div>
</div>
</section>
{# ===== USE-CASE SHORTCUTS ===== #}
<section class="bg-white py-20" aria-labelledby="shortcuts-title">
<div class="max-w-[820px] mx-auto px-6">
<div class="text-center mb-10">
<p class="eyebrow grad-text mb-4">RACCOURCIS</p>
<h2 id="shortcuts-title" class="text-[clamp(2rem,3vw,2.5rem)] font-black mb-4 text-brand-navy">
Un sujet précis&nbsp;?
</h2>
<p class="text-base text-brand-navy/80">
Pré-remplissez le sujet du courriel selon votre besoin&nbsp;:
</p>
</div>
<div class="grid sm:grid-cols-2 gap-3">
{% for shortcut in [
{'label': 'Pré-inscription DictIA', 'subject': 'Pr%C3%A9-inscription%20DictIA', 'icon': '🎯'},
{'label': 'Devis multi-sites', 'subject': 'Devis%20multi-sites', 'icon': '🏢'},
{'label': 'Demande de démonstration', 'subject': 'Demande%20de%20d%C3%A9monstration', 'icon': '📺'},
{'label': 'Dossier conformité Loi 25', 'subject': 'Dossier%20conformit%C3%A9%20Loi%2025', 'icon': '⚖️'},
{'label': 'Partenariat / intégration', 'subject': 'Partenariat%20/%20int%C3%A9gration', 'icon': '🤝'},
{'label': 'Question média / presse', 'subject': 'Question%20m%C3%A9dia', 'icon': '📰'}
] %}
<a href="mailto:info@dictia.ca?subject={{ shortcut.subject }}"
class="flex items-center gap-3 bg-brand-bg p-4 rounded-[14px] border border-brand-border hover:bg-white hover:border-brand-b1/30 transition-colors focus-visible:outline-2 focus-visible:outline-brand-b1 focus-visible:outline-offset-2">
<span class="text-2xl flex-shrink-0" aria-hidden="true">{{ shortcut.icon }}</span>
<span class="text-sm font-semibold text-brand-navy">{{ shortcut.label | safe }}</span>
</a>
{% endfor %}
</div>
</div>
</section>
{# ===== PRE-LAUNCH NOTE ===== #}
<section class="bg-brand-bg py-12" aria-labelledby="prelaunch-note-title">
<div class="max-w-[820px] mx-auto px-6 text-center">
<h2 id="prelaunch-note-title" class="text-base font-bold text-brand-navy/80 mb-2">
Formulaire en ligne&nbsp;: bientôt disponible
</h2>
<p class="text-sm text-brand-navy/70">
Le formulaire de contact en ligne ouvrira au lancement (printemps&nbsp;2026). D'ici là, le courriel reste le canal officiel.
</p>
</div>
</section>
{% endblock %}