V3 finalizes the radii pass to a fully brutalist/Swiss visual language: - Buttons (CTAs, submit, secondary, ghost, OAuth provider tiles): rounded-none (0px) - Form inputs (text/email/password/select/textarea/code-entry): rounded-none (0px) - Checkboxes: rounded-none (0px) — was rounded-sm - Small icon tiles (w-10 h-10 / w-12 h-12 grad-bg squares): rounded-none (0px) - Inline code blocks (totp recovery <pre>, secret <code>): rounded-none (0px) - Cards (pricing, bento, content panels, modals, prev/next nav): rounded (4px) — was rounded-lg - Alert / flash boxes: rounded (4px) — was rounded-lg - Pills, badges, status chips, ordres pros avatars, decorative cosmic orbs: rounded-full preserved - Legal _layout.html inline <style> blockquote/pre/code/draft-callout: border-radius 0 — was 4px Updated tests/test_marketing_landing_template.py assertions: - bento icon assertion: "grad-bg rounded " -> "grad-bg rounded-none " - pricing recommended frame: "rounded-lg" -> "rounded" (with strict trailing-char match to avoid rounded-none false positive) Verification: 18/18 legal tests pass, 58/58 marketing landing tests pass, 5/5 root redirect tests pass. Two pre-existing failures in test_marketing_secondary_pages (SOC 2 hedge text + gitea.innova-ai.ca URL) are unrelated to this radii pass.
148 lines
8.9 KiB
HTML
148 lines
8.9 KiB
HTML
{% extends 'marketing/base.html' %}
|
|
|
|
{% block title %}Conformité DictIA — Loi 25 (LPRPSP), LGGRI, AGPL v3, audit trail{% endblock %}
|
|
{% block description %}DictIA mappe son architecture aux exigences Loi 25 (LPRPSP), au cadre IA du secteur public québécois (LGGRI), avec hébergement OVH Beauharnois et code source AGPL v3 vérifiable.{% endblock %}
|
|
|
|
{% block content %}
|
|
|
|
{# ===== HEADER ===== #}
|
|
<section class="bg-brand-navy text-white py-20 overflow-hidden relative" aria-labelledby="page-title">
|
|
<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-[820px] mx-auto px-6 text-center">
|
|
<p class="eyebrow grad-text mb-4">CONFORMITÉ — FORTERESSE QUÉBÉCOISE</p>
|
|
<h1 id="page-title" class="text-[clamp(2.25rem,4vw,3.5rem)] font-black mb-4">
|
|
Architecture <span class="grad-text">conçue avec</span> les exigences professionnelles québécoises.
|
|
</h1>
|
|
<p class="text-lg text-white/80">
|
|
Détails techniques, EFVP type, modèles de 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>
|
|
</section>
|
|
|
|
{# ===== 4 PILLARS (same as landing's Conformité section, content-identical for SEO single source of truth on /conformite landing page) ===== #}
|
|
<section class="bg-white py-20" aria-labelledby="pillars-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">QUATRE PILIERS</p>
|
|
<h2 id="pillars-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
|
Pourquoi la conformité est <span class="grad-text">structurelle</span>, pas optionnelle.
|
|
</h2>
|
|
</div>
|
|
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
{% for card in [
|
|
{
|
|
'icon': '🍁',
|
|
'title': 'Stockage OVH Beauharnois (QC)',
|
|
'desc': 'Stockage persistant chez OVHcloud Canada à Beauharnois, Québec. Traitement GPU temporaire sur GCP Toronto (Ontario) : RAM uniquement, durée maximale 5 minutes par session, zéro persistance — encadré par EFVP signée. Données médicales et biométriques jamais hors du Canada.'
|
|
},
|
|
{
|
|
'icon': '⚖️',
|
|
'title': 'Mappé Loi 25 (LPRPSP)',
|
|
'desc': 'Audit trail art. 3.5, EFVP signées art. 3.3 et 17 (GCP, HubSpot), registre des consentements art. 14, déclaration CAI biométrie (formulaire K1) préparée. Modèles disponibles sur demande.'
|
|
},
|
|
{
|
|
'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': 'Fork du projet open source Speakr — architecture entièrement auditable sur <a href="https://gitea.dictia.ca/Innova-AI/dictia-public" target="_blank" rel="noopener" class="underline hover:text-brand-navy">Gitea public</a>. Aucune boîte noire. Vos auditeurs peuvent examiner chaque ligne.'
|
|
}
|
|
] %}
|
|
<article class="bg-brand-bg p-6 rounded border border-brand-border">
|
|
<div class="w-10 h-10 grad-bg rounded-none 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-brand-navy">{{ card.title | safe }}</h3>
|
|
<p class="text-sm text-brand-navy/80 leading-relaxed">{{ card.desc | safe }}</p>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{# ===== LOI 25 DETAIL ===== #}
|
|
<section class="bg-brand-bg py-20" aria-labelledby="loi25-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">LOI 25 (LPRPSP)</p>
|
|
<h2 id="loi25-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4 text-brand-navy">
|
|
Trois articles centraux que DictIA adresse par construction.
|
|
</h2>
|
|
<p class="text-base text-brand-navy/80">
|
|
La <em>Loi sur la protection des renseignements personnels dans le secteur privé</em> (LPRPSP, communément appelée « Loi 25 ») impose une discipline stricte sur les données biométriques et confidentielles. Les voix capturées en réunion en font partie. Voici comment notre architecture y répond.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="space-y-6">
|
|
{% for art in [
|
|
{
|
|
'num': 'Art. 3.3',
|
|
'title': 'Évaluation des facteurs relatifs à la vie privée (EFVP)',
|
|
'desc': 'Tout déploiement de DictIA dans un cabinet ou un organisme public déclenche une EFVP. Nous fournissons un modèle pré-rempli pour la voix professionnelle (catégories de données, finalités, mesures de sécurité, durée de conservation, transferts) — à compléter avec votre responsable de la protection des renseignements personnels (RPRP).'
|
|
},
|
|
{
|
|
'num': 'Art. 3.5',
|
|
'title': 'Audit trail intégré',
|
|
'desc': 'Chaque enregistrement, écoute, export, partage ou suppression est journalisé : utilisateur, IP, date/heure UTC, action. Le journal est consultable par votre RPRP et exportable pour audits CAI ou ordres professionnels. Aucun moyen de désactiver le journal côté client.'
|
|
},
|
|
{
|
|
'num': 'Art. 14',
|
|
'title': 'Consentement explicite et tracé',
|
|
'desc': 'Avant tout enregistrement, DictIA exige une confirmation que les participants ont consenti à l\'enregistrement et à la transcription IA. Le consentement est tracé dans le journal d\'audit. Vous pouvez configurer une demande de consentement automatique en début de session.'
|
|
}
|
|
] %}
|
|
<article class="bg-white p-6 rounded border border-brand-border">
|
|
<div class="flex flex-col md:flex-row md:items-start gap-4">
|
|
<div class="flex-shrink-0">
|
|
<span class="inline-block bg-brand-navy text-white text-xs font-black px-3 py-1.5 rounded-none">{{ art.num | safe }}</span>
|
|
</div>
|
|
<div>
|
|
<h3 class="text-lg font-bold mb-2 text-brand-navy">{{ art.title | safe }}</h3>
|
|
<p class="text-sm text-brand-navy/80 leading-relaxed">{{ art.desc | safe }}</p>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{# ===== AGPL TRANSPARENCY ===== #}
|
|
<section class="bg-brand-navy text-white py-20" aria-labelledby="agpl-title">
|
|
<div class="max-w-[820px] mx-auto px-6 text-center">
|
|
<p class="eyebrow grad-text mb-4">AGPL V3 — TRANSPARENCE</p>
|
|
<h2 id="agpl-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-4">
|
|
Code <span class="grad-text">vérifiable ligne par ligne</span>.
|
|
</h2>
|
|
<p class="text-base text-white/80 mb-8">
|
|
DictIA est publié sous licence <strong>GNU AGPL v3</strong>. Conséquence pratique : tout fork hébergé doit publier ses modifications sous la même licence. Vos auditeurs internes ou un tiers de confiance peuvent inspecter chaque ligne — modèle ML, pipeline audio, gestion d'identité, journal d'audit, exports. Aucune boîte noire propriétaire.
|
|
</p>
|
|
<div class="flex flex-col sm:flex-row gap-4 justify-center">
|
|
{% from 'macros/button.html' import button %}
|
|
{{ button('Code source sur Gitea', href='https://gitea.dictia.ca/Innova-AI/dictia-public', variant='primary', size='lg', icon='↗', target='_blank', rel='noopener') }}
|
|
{{ button('Comprendre AGPL v3', href='https://www.gnu.org/licenses/agpl-3.0.fr.html', variant='ghost', size='lg', target='_blank', rel='noopener') }}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{# ===== CTA ===== #}
|
|
<section class="bg-brand-bg py-20" aria-labelledby="conformite-cta-title">
|
|
<div class="max-w-[820px] mx-auto px-6 text-center">
|
|
<h2 id="conformite-cta-title" class="text-[clamp(2rem,3vw,2.75rem)] font-black mb-6 text-brand-navy">
|
|
Une <span class="grad-text">question de conformité</span> ?
|
|
</h2>
|
|
<p class="text-lg text-brand-navy/80 mb-8">
|
|
Nous accompagnons votre RPRP, votre comptable d'ordre ou votre service juridique dans l'évaluation. Modèle d'EFVP, registre de consentements et exemple de déclaration CAI sur demande.
|
|
</p>
|
|
<div class="flex flex-col sm:flex-row gap-4 justify-center">
|
|
{% from 'macros/button.html' import button %}
|
|
{{ button('Demander un dossier conformité', href='mailto:info@dictia.ca?subject=Demande%20dossier%20conformit%C3%A9', variant='primary', size='lg', icon='✉️') }}
|
|
{{ button('Voir les forfaits', href='/tarifs', variant='secondary', size='lg') }}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{% endblock %}
|