Audit conducted 2026-04-27 against signed PDFs in DOCS_DictIA/. All 6 legal
markdown files + 3 marketing templates aligned on the contractual ground truth
(documents signed by Allison Rioux + Jean-David Lévesque-Rioux 9 mars 2026).
CRITICAL DISCREPANCIES FIXED (D1-D9 — Loi 25 / contractual)
D1. Entity identity: removed false "filiale d'InnovA AI S.E.N.C." claim.
Canonical (PDC §1.1, CGU §1, RPRP doc): DictIA Inc. is a standalone SPA
constituted 22 mars 2026 (LSAQ), 50/50 owned by Allison Rioux + Jean-David
Lévesque-Rioux. NOT a subsidiary of InnovA AI.
D2. NEQ: replaced placeholder with canonical NEQ 1181949562 (DictIA Inc.).
D3. Sub-processors list: PDC §6.2 declares 5 sub-processors. Site listed only
OVH, Stripe, Resend (the latter two not in canonical). Now aligned:
OVH Beauharnois QC + GCP Toronto ON (RAM-only, 5min) + Cloudflare US (CDN)
+ HubSpot US (CRM) + Stripe US (paiements). Resend removed.
D4. GCP Toronto disclosure: NEW. PDC §6.2, §11.2, EFVP_GCP all declare GPU
processing on GCP Toronto Ontario as a transfer hors-Québec under art. 17
LSP. Site previously claimed "100 % au Québec" without GCP disclosure.
Now declared in confidentialite.md §6, §7 + conditions.md §2.4, §9 +
conformite.html pillar.
D5. Biometrics: NEW dedicated section. PDC §12, CGU §6, EFVP_BIOVOCAL all
require disclosure of voice biometrics (pyannote.audio embeddings) per
LCCJTI art. 44-45 + CAI declaration K1. Site had ZERO mention. Now
documented in confidentialite.md §12 + conditions.md §8.
D6. Wrong article number: landing.html cited "art. 60.1 LPRPSP" for biometric
sanctions — that article does NOT exist. Replaced with canonical citation:
"art. 44-45 LCCJTI + art. 12 LSP".
D7. Speakr fork attribution: CGU §13.1.1 explicitly requires the AGPL §13
disclosure URL to be gitea.dictia.ca (not gitea.innova-ai.ca). Mentions.md
+ conformite.html + footer normalized.
D8. Conservation periods: aligned to canonical CGU §8.1.2 + PDC §7.2.
Audio: 30 jours par défaut (extensible 12 mois opt-in) — was "indéfinie".
Biométrie inter-sessions: max 12 mois — était absent.
Facturation: 7 ans — était "6 ans".
Sauvegardes: 30 jours OVH QC.
D9. RPRP contact: confirmed canonical rprp@dictia.ca (per PDC §1.2 + RPRP
designation §1.3) — was already correct on site, kept as-is.
MEDIUM (M1-M3)
M1. Cookies categories: aligned to PDC §5.1 (5 categories: essentiels +
Cloudflare + perf + fonctionnels + HubSpot). Removed "Plausible Analytics
auto-hébergé" claim (not in any signed doc).
M2. DPA status: noted as "signed" for OVH + HubSpot (signed PDFs verified),
"in vigueur" for Stripe.
M3. Footer mentions légales link: added (was missing).
MINOR (N1-N2)
N1. Stripe entity: "Stripe Inc., San Francisco CA" (canonical PDC §2.6),
not "Stripe Payments Canada Ltd." (which doesn't appear in any signed doc).
N2. Engagement de non-entraînement IA: added to conditions.md §10 (canonical
CGU §10).
NOT MODIFIED (per scope boundaries)
- src/api/auth.py, src/billing/*.py, src/models/*.py — code not touched.
- templates/marketing/{tarifs,fonctionnalites}.html — frontend A-2.x final.
- landing.html — only minimal art. 60.1 → art. 44-45 fix (factual law error).
PENDING ALLISON REVIEW
- landing.html line 167-174 marketing claim "Vos données ne sortent jamais
de vos murs ou nos serveurs OVH Beauharnois" is technically inaccurate for
DictIA Cloud users (audio briefly transits to GCP Toronto for GPU processing,
RAM-only, 5min, zero persistence — encadré par EFVP signée). Decision
required: rephrase OR add asterisk pointing to /conformite for Cloud
architecture caveat.
- CAI form (CAI_FO_Declaration_Biometrie_DictIA_COMPLET_signé.pdf) declares
90 jours retention for inter-sessions vectors, while PDC + CGU + EFVP
all say 12 mois. Site uses 12 mois (latest, contractual). Allison should
verify CAI form needs amendment before submission.
TESTS
9/9 test_legal_pages.py passing (added biometrics + decisions automatisees
to required_topics; corrected "transfert hors-québec" → "transferts hors
québec" to match canonical PDC §11 OQLF wording).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
537 lines
30 KiB
HTML
537 lines
30 KiB
HTML
{% extends 'marketing/base.html' %}
|
||
|
||
{% block title %}Transcription IA conforme Loi 25 — DictIA pour avocats, CPA, secteur public{% endblock %}
|
||
{% block description %}DictIA transcrit vos réunions confidentielles 100% au Québec. Conforme Loi 25, Barreau, CPA, ChAD. Conçu avec 9 ordres professionnels — lancement printemps 2026.{% endblock %}
|
||
|
||
{% block content %}
|
||
{# ===== HERO ===== #}
|
||
<section class="relative overflow-hidden bg-brand-navy text-white py-24 md:py-32" aria-labelledby="hero-title">
|
||
{# Cosmic orbs background — 3 radial gradients (blue 16%, cyan 7%, green 11%) + subtle grid + horizontal accent line #}
|
||
<div class="absolute inset-0 pointer-events-none" aria-hidden="true">
|
||
{# Orb 1 — primary blue, top-left #}
|
||
<div class="absolute top-1/4 left-1/4 w-[600px] h-[600px] rounded-full opacity-100"
|
||
style="background: radial-gradient(circle, rgba(0,98,255,0.16) 0%, transparent 60%); filter: blur(40px);"></div>
|
||
{# Orb 2 — cyan, mid-right #}
|
||
<div class="absolute top-1/2 right-1/4 w-[500px] h-[500px] rounded-full"
|
||
style="background: radial-gradient(circle, rgba(0,189,216,0.07) 0%, transparent 60%); filter: blur(40px);"></div>
|
||
{# Orb 3 — accent green, bottom-left #}
|
||
<div class="absolute bottom-1/4 left-1/3 w-[400px] h-[400px] rounded-full"
|
||
style="background: radial-gradient(circle, rgba(0,200,150,0.11) 0%, transparent 60%); filter: blur(40px);"></div>
|
||
{# Subtle grid overlay (FlexiHub signature) #}
|
||
<div class="absolute inset-0"
|
||
style="background-image: linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px); background-size: 40px 40px;"></div>
|
||
{# Horizontal accent line — gradient blue→cyan→transparent #}
|
||
<div class="absolute top-1/3 left-0 right-0 h-px"
|
||
style="background: linear-gradient(90deg, transparent, rgba(0,98,255,0.3), rgba(0,189,216,0.2), transparent);"></div>
|
||
</div>
|
||
|
||
<div class="relative max-w-[1200px] mx-auto px-6">
|
||
<div class="max-w-3xl mx-auto text-center">
|
||
{# Eyebrow with gradient text and 0.18em tracking #}
|
||
<p class="eyebrow grad-text mb-6 animate-tc-fade-in-up" style="animation-delay: 0ms; animation-fill-mode: backwards;">
|
||
TRANSCRIPTION IA · CONFORME LOI 25 · QUÉBEC
|
||
</p>
|
||
|
||
{# H1 — clamp typography + grad-text accent on key phrase #}
|
||
<h1 id="hero-title" class="text-[clamp(2.5rem,4vw,4rem)] font-black leading-[1.05] mb-6 animate-tc-fade-in-up" style="animation-delay: 75ms; animation-fill-mode: backwards;">
|
||
Transcrivez vos réunions
|
||
<span class="grad-text">sans risquer votre permis</span>.
|
||
</h1>
|
||
|
||
{# Sub-headline — ≤25 words, value prop #}
|
||
<p class="text-lg text-white/70 max-w-2xl mx-auto mb-10 animate-tc-fade-in-up" style="animation-delay: 150ms; animation-fill-mode: backwards;">
|
||
DictIA convertit vos audio en texte, résumé et points d'action — 100% au Québec, conforme Barreau, CPA Québec, ChAD et 6 autres ordres professionnels.
|
||
</p>
|
||
|
||
{# Dual CTA — primary (demo) + secondary ghost (pricing) #}
|
||
<div class="flex flex-col sm:flex-row gap-3 justify-center animate-tc-fade-in-up" style="animation-delay: 300ms; animation-fill-mode: backwards;">
|
||
{% from 'macros/button.html' import button %}
|
||
{{ button('Réserver une démo', href='/contact', variant='primary', size='lg') }}
|
||
{{ button('Voir les tarifs →', href='/tarifs', variant='ghost', size='lg') }}
|
||
</div>
|
||
|
||
{# Social proof microcopy — defensible: refers to pre-launch waitlist + factual ordres pros count #}
|
||
<p class="mt-8 text-sm text-white/70 animate-tc-fade-in-up" style="animation-delay: 400ms; animation-fill-mode: backwards;">
|
||
<span class="inline-flex items-center gap-1.5">
|
||
<svg width="14" height="14" viewBox="0 0 20 20" fill="currentColor" class="text-brand-b3" aria-hidden="true">
|
||
<path d="M10 2L3 5v5.5c0 4.04 2.84 7.85 7 8.5 4.16-.65 7-4.46 7-8.5V5l-7-3z"/>
|
||
</svg>
|
||
<span>Conçu avec 9 ordres professionnels québécois</span>
|
||
</span>
|
||
<span class="mx-2 text-white/30">·</span>
|
||
<span>Pré-inscription ouverte</span>
|
||
<span class="mx-2 text-white/30">·</span>
|
||
<span>Lancement printemps 2026</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== TRUST BAR ===== #}
|
||
<section class="bg-white py-16 border-y border-brand-border" aria-labelledby="trust-bar-title">
|
||
<div class="max-w-[1200px] mx-auto px-6">
|
||
<p id="trust-bar-title" class="eyebrow text-center text-brand-navy/60 mb-8">
|
||
MAPPÉ AUX 9 ORDRES PROFESSIONNELS QUÉBÉCOIS
|
||
</p>
|
||
|
||
{# 9 monogram placeholders — stylized, not official logos (licensing) #}
|
||
<div class="grid grid-cols-3 sm:grid-cols-5 lg:grid-cols-9 gap-6 items-center justify-items-center mb-16">
|
||
{% for ordre in [
|
||
('Barreau du Québec', 'BAR'),
|
||
('Chambre des notaires du Québec', 'CNQ'),
|
||
('CPA Québec', 'CPA'),
|
||
('ChAD — Chambre de l\'assurance de dommages', 'ChAD'),
|
||
('OACIQ — Courtage immobilier', 'OACIQ'),
|
||
('CMQ — Médecins', 'CMQ'),
|
||
('OIIQ — Infirmières', 'OIIQ'),
|
||
('OPQ — Pharmaciens', 'OPQ'),
|
||
('OEQ — Ergothérapeutes', 'OEQ')
|
||
] %}
|
||
<div class="flex flex-col items-center group" title="{{ ordre[0] }}">
|
||
<div class="w-12 h-12 rounded-full bg-brand-grad flex items-center justify-center font-black text-white text-sm shadow-cta opacity-50 group-hover:opacity-100 transition-opacity duration-300">
|
||
{{ ordre[1] }}
|
||
</div>
|
||
<p class="text-xs mt-2 text-brand-navy/70 group-hover:text-brand-navy transition-colors duration-300">{{ ordre[0] }}</p>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
|
||
{# 4 KPI metrics — defensible numbers with footnote attribution #}
|
||
<div class="grid grid-cols-2 md:grid-cols-4 gap-8">
|
||
{% for kpi in [
|
||
('~5 min', 'par heure d\'audio', 'Traitement local 30× temps réel sur GPU RTX'),
|
||
('95 %+', 'précision FR-CA', 'WhisperX Large-v3 — test interne 2026-Q1'),
|
||
('0 $', 'frais par utilisateur', 'Modèle par serveur, volume illimité'),
|
||
('100 %', 'local au Québec', 'OVH Beauharnois ou vos serveurs')
|
||
] %}
|
||
<div class="text-center">
|
||
<div class="text-4xl font-black grad-text mb-2">{{ kpi[0] | safe }}</div>
|
||
<div class="text-sm font-semibold text-brand-navy mb-1">{{ kpi[1] }}</div>
|
||
<div class="text-xs text-brand-navy/60">{{ kpi[2] }}</div>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
|
||
{# Footnote — discloses methodology for the 95% claim (LPC art. 219 hygiene) #}
|
||
<p class="text-xs text-brand-navy/70 text-center mt-8 max-w-2xl mx-auto">
|
||
Précision mesurée sur un échantillon interne d'audio professionnel québécois (juridique, médical, municipal) — méthodologie disponible sur demande à <a href="mailto:info@dictia.ca" class="hover:text-brand-navy">info@dictia.ca</a>.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== PROBLÈME (P de PAS) ===== #}
|
||
<section class="bg-brand-bg py-20" aria-labelledby="probleme-title">
|
||
<div class="max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">LE PROBLÈME — TRANSCRIPTION CLOUD</p>
|
||
<h2 id="probleme-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4">
|
||
Vos réunions confidentielles dans Teams Copilot ou Otter.ai
|
||
<span class="grad-text">violent la Loi 25</span>.
|
||
</h2>
|
||
<p class="text-lg text-brand-navy/70">
|
||
Le transfert de données vocales hors-Québec sans consentement explicite expose les professionnels réglementés à des sanctions disciplinaires de leurs ordres et à des amendes CAI jusqu'à 25 M$ ou 4 % du chiffre d'affaires mondial.
|
||
</p>
|
||
</div>
|
||
|
||
{# 3 problem cards on white surface — Cloud Act, Loi 25, Sanctions #}
|
||
<div class="grid md:grid-cols-3 gap-6 mt-12">
|
||
{% for card in [
|
||
('Cloud Act', 'Loi américaine 2018', 'Microsoft, Google et OpenAI sont soumis au Cloud Act. Vos données peuvent être saisies par les autorités américaines sans votre consentement ni notification — y compris les enregistrements de vos réunions client.', '⚖️'),
|
||
('Loi 25 — biométrie', 'Sanctions CAI jusqu\'à 25 M$', 'La voix est une donnée biométrique au sens des articles 44-45 de la LCCJTI et un renseignement sensible au sens de la Loi 25 (art. 12 LSP). Tout traitement nécessite un consentement explicite, une déclaration préalable à la CAI et un transfert vers un territoire offrant une protection équivalente — ce que les États-Unis n\'offrent pas.', '🛡️'),
|
||
('Sanctions disciplinaires', '~250 000 pros réglementés QC (CIQ)', 'Les ordres professionnels québécois — au premier rang desquels le Barreau, la Chambre des notaires et CPA Québec — exigent une obligation stricte de confidentialité. Le transfert de données client hors-juridiction sans consentement explicite peut être qualifié de manquement, jusqu\'à la radiation pour les fautes graves.', '⚠️')
|
||
] %}
|
||
<article class="bg-white p-6 rounded-[0.75rem] border border-brand-border">
|
||
<div class="text-3xl mb-4" aria-hidden="true">{{ card[3] }}</div>
|
||
<h3 class="text-lg font-bold mb-1 text-brand-navy">{{ card[0] }}</h3>
|
||
<p class="text-xs uppercase tracking-wider text-brand-navy/70 mb-3 font-semibold">{{ card[1] | safe }}</p>
|
||
<p class="text-sm text-brand-navy/70 leading-relaxed">{{ card[2] | safe }}</p>
|
||
</article>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== SOLUTION (S de PAS) ===== #}
|
||
<section class="relative bg-brand-navy text-white py-20 overflow-hidden" aria-labelledby="solution-title">
|
||
{# Single subtle orb in solution bg — less busy than hero #}
|
||
<div class="absolute top-1/2 right-1/4 w-[500px] h-[500px] rounded-full pointer-events-none" aria-hidden="true"
|
||
style="background: radial-gradient(circle, rgba(0,200,150,0.08) 0%, transparent 60%); filter: blur(60px);"></div>
|
||
|
||
<div class="relative max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">LA SOLUTION — DICTIA</p>
|
||
<h2 id="solution-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4">
|
||
Conforme <span class="grad-text">par design</span>, pas par défaut.
|
||
</h2>
|
||
<p class="text-lg text-white/70">
|
||
DictIA reproduit la précision des outils cloud — WhisperX Large-v3 + Mistral 7B — mais avec une architecture où vos données ne quittent jamais vos murs ou nos serveurs OVH Beauharnois.
|
||
</p>
|
||
</div>
|
||
|
||
{# 3 solution pillars — dark cards with grad-bg icon corners #}
|
||
<div class="grid md:grid-cols-3 gap-6">
|
||
{% for pillar in [
|
||
('100 % local', 'Vos données ne sortent jamais de vos murs. Inférence GPU sur place ou VPS Québec OVH Beauharnois — vous gardez le contrôle, l\'audit, et les clés.'),
|
||
('Conforme Loi 25', 'Audit trail intégré (qui a écouté quoi, quand). Déclaration CAI prête. Consentement explicite tracé pour chaque enregistrement. Code source AGPL v3 — transparence vérifiable.'),
|
||
('Précision FR-CA', 'WhisperX Large-v3 fine-tuné français québécois. Diarisation pyannote 8 locuteurs. Résumés Mistral 7B local — aucune connexion OpenAI/Google/Microsoft.')
|
||
] %}
|
||
<article class="bg-white/[0.05] backdrop-blur-sm p-6 rounded-[0.75rem] border border-white/[0.08]">
|
||
<div class="w-10 h-10 grad-bg rounded-[0.5rem] mb-4 flex items-center justify-center font-black text-white shadow-cta" aria-hidden="true">✓</div>
|
||
<h3 class="text-lg font-bold mb-2 text-white">{{ pillar[0] | safe }}</h3>
|
||
<p class="text-sm text-white/70 leading-relaxed">{{ pillar[1] | safe }}</p>
|
||
</article>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== BENTO FEATURES ===== #}
|
||
<section class="bg-white py-20" aria-labelledby="bento-title">
|
||
<div class="max-w-[1060px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">FONCTIONNALITÉS</p>
|
||
<h2 id="bento-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black text-brand-navy">
|
||
Tout ce dont vous avez besoin, <span class="grad-text">rien que vous n'ayez besoin</span>.
|
||
</h2>
|
||
</div>
|
||
|
||
{# NOTE: bento card content is duplicated between landing.html and fonctionnalites.html.
|
||
When editing, sync both files. Future refactor: extract to _partials/_bento_features.html. #}
|
||
{% from 'macros/bento.html' import bento_card %}
|
||
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-[1.5px] bg-brand-border rounded-[18px] overflow-hidden">
|
||
{{ bento_card('01', 'Transcription WhisperX', 'Large-v3 fine-tuné FR-CA. Précision 95 %+ sur réunions, dictées, audiences (méthodologie disponible sur demande).', '🎙️') }}
|
||
{{ bento_card('02', 'Diarisation 8 locuteurs', 'pyannote sépare automatiquement les intervenants. Identification par embeddings vocaux.', '👥') }}
|
||
{{ bento_card('03', 'Résumés Mistral 7B', 'IA locale génère résumés, points d\'action et procès-verbaux. Aucune connexion cloud.', '📝') }}
|
||
{{ bento_card('04', 'Q&R sur enregistrement', 'Posez des questions à vos réunions. RAG local sur embeddings sentence-transformers.', '💬') }}
|
||
{{ bento_card('05', 'Exports multiples', 'DOCX, PDF, SRT, VTT, TXT, JSON, MD. Formats avocat, notaire, CPA.', '📄') }}
|
||
{{ bento_card('06', 'Intégrations', 'Word, Outlook, Teams, Notion, Obsidian, Zapier, Make, n8n.', '🔌') }}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== PRICING ===== #}
|
||
<section class="bg-brand-bg py-20" id="tarifs" aria-labelledby="pricing-title">
|
||
<div class="max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">TARIFS</p>
|
||
<h2 id="pricing-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
||
Choisissez votre formule.
|
||
</h2>
|
||
<p class="text-lg text-brand-navy/70">
|
||
Tous les forfaits incluent WhisperX Large-v3, volume illimité et zéro frais par utilisateur. Prix en CAD, taxes en sus (TPS 5 % + TVQ 9,975 %).
|
||
</p>
|
||
</div>
|
||
|
||
{% include 'marketing/_partials/_pricing_tiers.html' %}
|
||
|
||
{# ROI CALCULATOR — Alpine.js, hypotheses transparentes pour LPC art. 219 hygiene #}
|
||
<div x-data="roiCalculator()" class="mt-16 max-w-3xl mx-auto bg-white p-8 rounded-[18px] border border-brand-border" aria-labelledby="roi-title">
|
||
<p class="eyebrow text-center grad-text mb-2">CALCULATEUR ROI</p>
|
||
<h3 id="roi-title" class="text-2xl font-black text-center mb-6 text-brand-navy">Combien DictIA peut vous faire économiser ?</h3>
|
||
<div class="grid sm:grid-cols-3 gap-4 mb-6">
|
||
<label class="flex flex-col">
|
||
<span class="text-xs font-semibold mb-1 text-brand-navy">Utilisateurs</span>
|
||
<input type="range" x-model.number="users" min="1" max="25" step="1" class="accent-brand-b1" aria-label="Nombre d'utilisateurs">
|
||
<span class="text-sm text-brand-navy/70" x-text="users + ' utilisateur' + (users > 1 ? 's' : '')"></span>
|
||
</label>
|
||
<label class="flex flex-col">
|
||
<span class="text-xs font-semibold mb-1 text-brand-navy">Heures audio / jour</span>
|
||
<input type="range" x-model.number="hours" min="0.5" max="4" step="0.5" class="accent-brand-b1" aria-label="Heures d'audio par jour">
|
||
<span class="text-sm text-brand-navy/70" x-text="hours + ' h/jour'"></span>
|
||
</label>
|
||
<label class="flex flex-col">
|
||
<span class="text-xs font-semibold mb-1 text-brand-navy">Tarif horaire ($)</span>
|
||
<input type="range" x-model.number="rate" min="50" max="500" step="25" class="accent-brand-b1" aria-label="Tarif horaire en dollars">
|
||
<span class="text-sm text-brand-navy/70" x-text="rate + ' $/h'"></span>
|
||
</label>
|
||
</div>
|
||
<div class="text-center pt-6 border-t border-brand-border">
|
||
<p class="text-sm text-brand-navy/70 mb-2">Économies estimées par an</p>
|
||
<p class="text-5xl font-black grad-text" aria-live="polite" aria-atomic="true"
|
||
x-text="savings.toLocaleString('fr-CA') + ' $'"></p>
|
||
<p class="text-sm text-brand-navy/70 mt-2"
|
||
x-text="payback === null ? 'Payable dès la première année' : (payback < 1 ? 'Payback : moins d\'un mois' : 'Payback : ' + Math.round(payback) + ' mois')"></p>
|
||
</div>
|
||
<p class="text-xs text-brand-navy/70 mt-6 text-center">
|
||
Hypothèses : 80 % du temps de transcription manuelle économisé, 220 jours ouvrables/an, comparé à DictIA 16 (5 750 $ + 201 $/mois). Estimation à titre indicatif.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== COMPARATIF ===== #}
|
||
<section class="bg-white py-20" aria-labelledby="comparatif-title">
|
||
<div class="max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-3xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">COMPARATIF</p>
|
||
<h2 id="comparatif-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
||
DictIA face aux solutions cloud américaines.
|
||
</h2>
|
||
<p class="text-lg text-brand-navy/70">
|
||
Comparaison factuelle au 2026-04-27. Sources : politiques de confidentialité publiques + grilles tarifaires officielles. Détails sur demande : <a href="mailto:info@dictia.ca" class="grad-text font-semibold hover:underline">info@dictia.ca</a>.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="overflow-x-auto rounded-[18px] border border-brand-border">
|
||
<table class="w-full min-w-[720px] text-sm">
|
||
<caption class="sr-only">Comparaison DictIA, Microsoft Teams Premium, Otter.ai Business, Whisper local sur 6 critères</caption>
|
||
<thead class="bg-brand-bg">
|
||
<tr>
|
||
<th scope="col" class="text-left p-4 font-bold text-brand-navy">Critère</th>
|
||
<th scope="col" class="p-4 font-bold text-brand-navy">DictIA</th>
|
||
<th scope="col" class="p-4 font-bold text-brand-navy/70">MS Teams Premium</th>
|
||
<th scope="col" class="p-4 font-bold text-brand-navy/70">Otter.ai Business</th>
|
||
<th scope="col" class="p-4 font-bold text-brand-navy/70">Whisper local (DIY)</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody class="divide-y divide-brand-border">
|
||
{% for row in [
|
||
{
|
||
'critere': 'Conforme Loi 25 sans transfert hors-Québec',
|
||
'dictia': '✓ Hébergement OVH Beauharnois',
|
||
'teams': '✗ Soumis Cloud Act (US)',
|
||
'otter': '✗ Hébergement US',
|
||
'whisper': '✓ Aucun transfert (local)'
|
||
},
|
||
{
|
||
'critere': 'Souveraineté hors Cloud Act US',
|
||
'dictia': '✓ Aucune exposition',
|
||
'teams': '✗ Microsoft = entité US',
|
||
'otter': '✗ Otter.ai Inc. = US',
|
||
'whisper': '✓ Local'
|
||
},
|
||
{
|
||
'critere': 'WhisperX Large-v3 fine-tuné FR-CA',
|
||
'dictia': '✓ FR-CA optimisé',
|
||
'teams': '⚠ FR générique (FR-FR)',
|
||
'otter': '✗ Anglais privilégié',
|
||
'whisper': '⚠ FR générique de base'
|
||
},
|
||
{
|
||
'critere': 'Diarisation jusqu\'à 8 locuteurs (pyannote)',
|
||
'dictia': '✓ Inclus par défaut',
|
||
'teams': '⚠ Limité ~6 (Premium)',
|
||
'otter': '⚠ Variable selon le forfait',
|
||
'whisper': '✗ Non incluse'
|
||
},
|
||
{
|
||
'critere': 'Coût mensuel par utilisateur',
|
||
'dictia': '0 $ (forfait fixe)',
|
||
'teams': '~14 $ CAD (Premium)',
|
||
'otter': '~20 $ US (Business)',
|
||
'whisper': '0 $ (mais GPU + DevOps requis)'
|
||
},
|
||
{
|
||
'critere': 'Audit trail intégré (Loi 25 art. 3.5)',
|
||
'dictia': '✓ Inclus par défaut',
|
||
'teams': '⚠ Via M365 Audit séparé',
|
||
'otter': '⚠ Logs basiques seulement',
|
||
'whisper': '✗ À développer soi-même'
|
||
}
|
||
] %}
|
||
<tr class="hover:bg-brand-bg/50 transition-colors">
|
||
<th scope="row" class="text-left p-4 font-semibold text-brand-navy/80">{{ row.critere | safe }}</th>
|
||
<td class="p-4 text-center font-semibold text-brand-navy">
|
||
<span class="inline-block px-2 py-1 rounded-md bg-brand-b3/10 text-brand-navy">{{ row.dictia | safe }}</span>
|
||
</td>
|
||
<td class="p-4 text-center text-brand-navy/70">{{ row.teams | safe }}</td>
|
||
<td class="p-4 text-center text-brand-navy/70">{{ row.otter | safe }}</td>
|
||
<td class="p-4 text-center text-brand-navy/70">{{ row.whisper | safe }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<p class="text-xs text-brand-navy/70 mt-6 text-center max-w-3xl mx-auto">
|
||
Comparatif établi à partir de sources publiques (politiques de confidentialité, grilles tarifaires officielles, documentation produit) au 2026-04-27. Microsoft Teams Premium et Otter.ai sont des marques déposées de leurs propriétaires respectifs. DictIA n'est pas affilié à ces produits.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== CONFORMITÉ FORTERESSE ===== #}
|
||
<section class="bg-brand-navy text-white py-20 overflow-hidden relative" aria-labelledby="conformite-title">
|
||
{# Subtle decorative orb — green this time, like the Solution section #}
|
||
<div class="absolute top-1/3 left-1/4 w-[500px] h-[500px] rounded-full pointer-events-none" aria-hidden="true"
|
||
style="background: radial-gradient(circle, rgba(0,200,150,0.07) 0%, transparent 60%); filter: blur(60px);"></div>
|
||
|
||
<div class="relative max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">CONFORMITÉ — FORTERESSE QUÉBÉCOISE</p>
|
||
<h2 id="conformite-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4">
|
||
Architecture <span class="grad-text">conçue avec</span> les exigences professionnelles québécoises.
|
||
</h2>
|
||
<p class="text-lg text-white/70">
|
||
DictIA mappe son architecture aux cadres réglementaires applicables au secteur public et aux ordres professionnels du Québec. Détails techniques (EFVP, audit trail, déclaration CAI) disponibles sur demande : <a href="mailto:info@dictia.ca" class="grad-text font-semibold hover:underline">info@dictia.ca</a>.
|
||
</p>
|
||
</div>
|
||
|
||
{# 4 conformity pillars — dark cards with grad-bg icon corners (matches Solution pillars style) #}
|
||
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||
{% for card in [
|
||
{
|
||
'icon': '🍁',
|
||
'title': 'Hébergement OVH Beauharnois',
|
||
'desc': 'Centre de données opéré par OVHcloud Canada en territoire québécois. Conformité documentée selon les services (ISO 27001, SOC 2 selon le périmètre). Détails sur demande.'
|
||
},
|
||
{
|
||
'icon': '⚖️',
|
||
'title': 'Mappé Loi 25 (LPRPSP)',
|
||
'desc': 'Audit trail art. 3.5, EFVP préparée art. 3.3, registre des consentements art. 14. Modèles de déclaration CAI fournis.'
|
||
},
|
||
{
|
||
'icon': '🏛️',
|
||
'title': 'Compatible Cadre IA secteur public',
|
||
'desc': 'DictIA est conçu pour s\'inscrire dans le cadre de gestion des systèmes d\'IA du secteur public québécois (LGGRI). Documentation détaillée sur demande.'
|
||
},
|
||
{
|
||
'icon': '🔓',
|
||
'title': 'Code source AGPL v3 vérifiable',
|
||
'desc': 'Architecture entièrement auditable sur <a href="https://gitea.innova-ai.ca/Innova-AI/dictia-public" target="_blank" rel="noopener" class="underline hover:text-white">Gitea public</a>. Aucune boîte noire. Vos auditeurs peuvent examiner chaque ligne.'
|
||
}
|
||
] %}
|
||
<article class="bg-white/[0.05] backdrop-blur-sm p-6 rounded-[0.75rem] border border-white/[0.08]">
|
||
<div class="w-10 h-10 grad-bg rounded-[0.5rem] mb-4 flex items-center justify-center text-lg shadow-cta" aria-hidden="true">{{ card.icon }}</div>
|
||
<h3 class="text-lg font-bold mb-2 text-white">{{ card.title | safe }}</h3>
|
||
<p class="text-sm text-white/80 leading-relaxed">{{ card.desc | safe }}</p>
|
||
</article>
|
||
{% endfor %}
|
||
</div>
|
||
|
||
<div class="text-center mt-10">
|
||
<p class="text-sm text-white/70">
|
||
Lancement prévu : <strong class="text-white">printemps 2026</strong>. Pré-inscription ouverte.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== TÉMOIGNAGES (placeholder pré-lancement) ===== #}
|
||
<section class="bg-brand-bg py-20" aria-labelledby="testimonials-title">
|
||
<div class="max-w-[1200px] mx-auto px-6">
|
||
<div class="text-center max-w-2xl mx-auto mb-12">
|
||
<p class="eyebrow grad-text mb-4">TÉMOIGNAGES</p>
|
||
<h2 id="testimonials-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
||
Premiers cabinets pilotes interviewés au printemps 2026.
|
||
</h2>
|
||
<p class="text-lg text-brand-navy/70">
|
||
Trois pilotes confidentiels en cours : un cabinet juridique, un cabinet CPA, une municipalité. Témoignages publiés ici dès l'aboutissement des entrevues, accompagnés d'une métrique vérifiable.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="grid md:grid-cols-3 gap-6">
|
||
{% for t in testimonials %}
|
||
<article class="bg-white p-6 rounded-[18px] border border-brand-border flex flex-col items-center text-center"
|
||
aria-label="Témoignage {{ t.placeholder_label }} à venir">
|
||
<div class="w-16 h-16 rounded-full grad-bg flex items-center justify-center mb-4 shadow-cta" aria-hidden="true">
|
||
{%- if t.persona == 'avocat' -%}<span class="text-2xl">⚖️</span>
|
||
{%- elif t.persona == 'cpa' -%}<span class="text-2xl">📊</span>
|
||
{%- elif t.persona == 'municipal' -%}<span class="text-2xl">🏛️</span>
|
||
{%- endif -%}
|
||
</div>
|
||
<p class="text-sm font-bold text-brand-navy mb-1">{{ t.placeholder_label | safe }}</p>
|
||
<p class="text-xs text-brand-navy/70 mb-4">Témoignage à venir · {{ t.expected | safe }}</p>
|
||
<p class="text-sm text-brand-navy/70 italic">
|
||
« Citation et métrique publiées après validation par le pilote. »
|
||
</p>
|
||
</article>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{# ===== FAQ ===== #}
|
||
<section class="bg-white py-20" aria-labelledby="faq-title">
|
||
<div class="max-w-[820px] mx-auto px-6">
|
||
<div class="text-center mb-12">
|
||
<p class="eyebrow grad-text mb-4">FAQ</p>
|
||
<h2 id="faq-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
||
Vos questions les plus fréquentes.
|
||
</h2>
|
||
<p class="text-lg text-brand-navy/70">
|
||
Une question qui n'est pas couverte ici ? Écrivez-nous :
|
||
<a href="mailto:info@dictia.ca" class="grad-text font-semibold hover:underline">info@dictia.ca</a>.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="divide-y divide-brand-border border-y border-brand-border" role="list">
|
||
{% for item in faq %}
|
||
<div x-data="{ open: false }" class="py-2" role="listitem">
|
||
<h3>
|
||
<button type="button"
|
||
class="w-full flex items-center justify-between gap-4 py-4 text-left hover:bg-brand-bg/50 transition-colors rounded-md px-2 focus-visible:outline-2 focus-visible:outline-brand-b1 focus-visible:outline-offset-2"
|
||
@click="open = !open"
|
||
:aria-expanded="open.toString()"
|
||
aria-controls="faq-panel-{{ loop.index }}">
|
||
<span class="font-semibold text-brand-navy text-base">{{ item.q | safe }}</span>
|
||
<span class="grad-text text-2xl flex-shrink-0 transition-transform"
|
||
:class="open ? 'rotate-45' : ''" aria-hidden="true">+</span>
|
||
</button>
|
||
</h3>
|
||
<div id="faq-panel-{{ loop.index }}"
|
||
x-show="open"
|
||
x-transition.opacity.duration.200ms>
|
||
<p class="px-2 pb-4 text-sm text-brand-navy/80 leading-relaxed">{{ item.a | safe }}</p>
|
||
</div>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
|
||
{# Schema.org FAQPage JSON-LD for SEO/GEO — inline so it travels with this page only #}
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "FAQPage",
|
||
"mainEntity": [
|
||
{%- for item in faq -%}
|
||
{
|
||
"@type": "Question",
|
||
"name": {{ (item.q | striptags | replace(' ', ' '))|tojson }},
|
||
"acceptedAnswer": {
|
||
"@type": "Answer",
|
||
"text": {{ (item.a | striptags | replace(' ', ' '))|tojson }}
|
||
}
|
||
}{{ "," if not loop.last }}
|
||
{%- endfor -%}
|
||
]
|
||
}
|
||
</script>
|
||
</section>
|
||
|
||
{# ===== CTA FINAL ===== #}
|
||
<section class="relative bg-brand-navy text-white py-24 overflow-hidden" aria-labelledby="cta-title">
|
||
{# Two warm cosmic orbs to mirror the Hero — visual closure of the page #}
|
||
<div class="absolute inset-0 pointer-events-none" aria-hidden="true">
|
||
<div class="absolute top-1/4 left-1/3 w-[500px] h-[500px] rounded-full"
|
||
style="background: radial-gradient(circle, rgba(0,98,255,0.14) 0%, transparent 60%); filter: blur(50px);"></div>
|
||
<div class="absolute bottom-1/4 right-1/3 w-[450px] h-[450px] rounded-full"
|
||
style="background: radial-gradient(circle, rgba(0,200,150,0.10) 0%, transparent 60%); filter: blur(50px);"></div>
|
||
</div>
|
||
|
||
<div class="relative max-w-[820px] mx-auto px-6 text-center">
|
||
<p class="eyebrow grad-text mb-4">PRÊT ?</p>
|
||
<h2 id="cta-title" class="text-[clamp(2.25rem,4vw,3.5rem)] font-black mb-6">
|
||
Réservez votre <span class="grad-text">pré-inscription</span>.
|
||
</h2>
|
||
<p class="text-lg text-white/80 mb-8">
|
||
Lancement printemps 2026. Les premiers utilisateurs bénéficient d'une remise de bienvenue et d'un accompagnement direct par notre équipe technique. Aucun engagement.
|
||
</p>
|
||
|
||
<div class="flex flex-col sm:flex-row gap-4 justify-center">
|
||
{% from 'macros/button.html' import button %}
|
||
{{ button('Pré-inscription par courriel', href='mailto:info@dictia.ca?subject=Pré-inscription%20DictIA', variant='primary', size='lg', icon='✉️') }}
|
||
{{ button('Voir les forfaits', href='#tarifs', variant='ghost', size='lg') }}
|
||
</div>
|
||
|
||
<p class="text-xs text-white/70 mt-8">
|
||
Pré-inscription par courriel jusqu'à l'ouverture de la plateforme. Inscription en ligne disponible dès le lancement.
|
||
</p>
|
||
</div>
|
||
</section>
|
||
{% endblock %}
|
||
|
||
{% block scripts %}
|
||
<script src="/static/js/roi_calculator.js" defer></script>
|
||
{% endblock %}
|