diff --git a/landing/_legal-shell.css b/landing/_legal-shell.css new file mode 100644 index 0000000..3f00899 --- /dev/null +++ b/landing/_legal-shell.css @@ -0,0 +1,331 @@ +/* + * Styles partagés pour les pages légales (mentions-legales, confidentialite). + * Reprend la palette + typo de la landing pour l'unité visuelle, mais en + * version "longue lecture" — pas de hero, pas d'animations, juste un + * container central confortable avec hiérarchie typographique soignée. + */ + +@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@10..48,500;10..48,600;10..48,700;10..48,800&family=Inter:wght@400;500;600;700&display=swap"); + +:root { + --rubis: #9f1239; + --rubis-deep: #771328; + --rubis-glow: #fbe4ea; + --cream: #faf7f2; + --cream-2: #f5efe7; + --ink: #1a1410; + --ink-2: #4f4640; + --ink-3: #8a7f76; + --line: #e8e0d6; + --display: "Bricolage Grotesque", system-ui, sans-serif; + --body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; +} + +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--body); + background: var(--cream); + color: var(--ink); + font-size: 16px; + line-height: 1.65; + -webkit-font-smoothing: antialiased; +} + +a { + color: var(--rubis); + text-decoration: none; +} + +a:hover { + text-decoration: underline; + text-underline-offset: 3px; +} + +/* === Header sobre (même brand que landing) === */ +.legal-header { + background: var(--cream); + border-bottom: 1px solid var(--line); + padding: 18px 0; + position: sticky; + top: 0; + z-index: 50; + backdrop-filter: blur(10px); + background: rgba(250, 247, 242, 0.92); +} + +.legal-header .container { + display: flex; + align-items: center; + justify-content: space-between; +} + +.brand { + display: inline-flex; + align-items: center; + gap: 10px; + font-family: var(--display); + font-weight: 800; + font-size: 19px; + letter-spacing: -0.02em; + color: var(--ink); +} + +.brand:hover { + text-decoration: none; +} + +.brand-suffix { + font-family: var(--display); + font-style: italic; + font-weight: 500; + color: var(--ink-3); + font-size: 12.5px; + margin-left: 4px; +} + +.gem-svg { + width: 22px; + height: 22px; +} + +.back-link { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 13px; + color: var(--ink-3); + font-weight: 500; +} + +.back-link:hover { + color: var(--rubis); +} + +/* === Container & contenu === */ +.container { + max-width: 760px; + margin: 0 auto; + padding: 0 24px; +} + +.legal-main { + padding: 56px 0 80px; +} + +.legal-main > .container > .eyebrow { + font-size: 11px; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--rubis); + margin-bottom: 12px; +} + +h1 { + font-family: var(--display); + font-size: clamp(32px, 5vw, 44px); + font-weight: 800; + letter-spacing: -0.022em; + line-height: 1.1; + margin-bottom: 12px; + color: var(--ink); +} + +h1 em { + color: var(--rubis); + font-style: normal; +} + +.lede { + font-size: 16px; + color: var(--ink-2); + margin-bottom: 12px; +} + +.last-updated { + font-size: 12.5px; + color: var(--ink-3); + margin-bottom: 40px; + font-style: italic; +} + +h2 { + font-family: var(--display); + font-size: 22px; + font-weight: 700; + letter-spacing: -0.018em; + line-height: 1.2; + margin: 48px 0 14px; + color: var(--ink); + scroll-margin-top: 80px; +} + +h3 { + font-family: var(--display); + font-size: 16.5px; + font-weight: 700; + margin: 28px 0 10px; + color: var(--ink); +} + +p, +ul, +ol { + margin-bottom: 16px; + color: var(--ink-2); +} + +ul, +ol { + padding-left: 24px; +} + +ul li, +ol li { + margin-bottom: 8px; + color: var(--ink-2); +} + +ul li strong, +ol li strong, +p strong { + color: var(--ink); + font-weight: 600; +} + +/* Bloc info "callout" pour les emails de contact */ +.callout { + background: var(--cream-2); + border-left: 3px solid var(--rubis); + padding: 16px 20px; + border-radius: 4px; + margin: 24px 0; + font-size: 14.5px; +} + +.callout strong { + color: var(--ink); +} + +.callout p { + margin: 0; +} + +/* TOC compact en haut */ +.toc { + background: var(--cream-2); + border: 1px solid var(--line); + border-radius: 14px; + padding: 20px 24px; + margin: 32px 0 40px; + font-size: 14px; +} + +.toc-title { + font-size: 11px; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--ink-3); + margin-bottom: 10px; +} + +.toc ol { + padding-left: 20px; + margin-bottom: 0; + counter-reset: toc; + list-style: none; +} + +.toc li { + counter-increment: toc; + margin-bottom: 4px; +} + +.toc li::before { + content: counter(toc) "."; + color: var(--rubis); + font-weight: 600; + margin-right: 8px; +} + +.toc a { + color: var(--ink-2); +} + +.toc a:hover { + color: var(--rubis); +} + +/* Tableau définitions (sous-traitants etc.) */ +.def-table { + border-collapse: collapse; + width: 100%; + margin: 16px 0 24px; + font-size: 14px; +} + +.def-table th, +.def-table td { + text-align: left; + padding: 10px 12px; + border-bottom: 1px solid var(--line); + vertical-align: top; +} + +.def-table th { + background: var(--cream-2); + color: var(--ink-3); + font-weight: 600; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.06em; +} + +.def-table td:first-child { + font-weight: 600; + color: var(--ink); + white-space: nowrap; + width: 30%; +} + +/* === Footer (identique landing minimal) === */ +.legal-footer { + border-top: 1px solid var(--line); + background: var(--cream-2); + padding: 32px 0 40px; + font-size: 13px; + color: var(--ink-3); +} + +.legal-footer .container { + display: flex; + flex-wrap: wrap; + gap: 24px; + align-items: center; + justify-content: space-between; +} + +.legal-footer nav { + display: flex; + flex-wrap: wrap; + gap: 18px; +} + +.legal-footer nav a { + color: var(--ink-3); + font-weight: 500; +} + +.legal-footer nav a:hover { + color: var(--rubis); +} diff --git a/landing/confidentialite.html b/landing/confidentialite.html new file mode 100644 index 0000000..7198d34 --- /dev/null +++ b/landing/confidentialite.html @@ -0,0 +1,311 @@ + + + + + + + + + + + + + Politique de confidentialité · Rubis sur l'ongle + + + + + +
+
+

Données personnelles · RGPD

+

Politique de confidentialité

+

+ Cette page décrit comment Rubis sur l'ongle collecte, utilise et protège vos données + personnelles, conformément au Règlement (UE) 2016/679 (RGPD) et à la loi + Informatique et Libertés modifiée. +

+

Dernière mise à jour : 7 mai 2026

+ + + +

1. Responsable du traitement

+

+ Le responsable du traitement de vos données est Arthur Barré, + éditeur du service Rubis sur l'ongle (cf. + mentions légales). +

+
+

+ Pour toute question liée à vos données : + privacy@rubis.pro +

+
+ +

2. Données collectées

+

+ Nous collectons uniquement les données strictement nécessaires au fonctionnement du + service. Aucune donnée n'est revendue à des tiers à des fins commerciales. +

+ +

2.1 Données d'inscription et de compte

+ + +

2.2 Données métier saisies par l'utilisateur

+ +

+ Important : les données des clients finaux du user sont + collectées par l'utilisateur lui-même qui en est responsable de traitement vis-à-vis + de ses clients. Rubis agit en tant que sous-traitant au sens de l'article 28 du + RGPD pour ces données. Un avenant DPA peut être fourni sur demande. +

+ +

2.3 Données techniques et journaux

+ + +

3. Finalités et bases légales

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FinalitéBase légale
Fourniture du service (relances, OCR, dashboard)Exécution du contrat (art. 6.1.b RGPD)
Facturation et abonnementExécution du contrat + obligation légale (comptable)
Sécurité du service (anti-fraude, logs)Intérêt légitime (art. 6.1.f)
Support utilisateurExécution du contrat
Statistiques d'usage anonymiséesIntérêt légitime — pas de profiling individuel
Communication commercialeConsentement explicite (opt-in à l'inscription)
+ +

4. Sous-traitants et hébergement

+

+ Tout l'hébergement principal (base de données, fichiers PDF, application) reste sur + notre infrastructure auto-hébergée en France. Quelques services tiers spécialisés + interviennent uniquement pour des fonctions ciblées : +

+ + + + + + + + + + + + + + + + + + + + + +
Sous-traitantRôle & localisation
Stripe + Traitement des paiements et abonnements. Données : email, nom, CB (jamais + stockée chez nous, gérée par Stripe). Stripe est certifié PCI-DSS niveau 1. + Hébergement principal : Irlande (UE). +
Resend + Envoi des emails transactionnels (relances et confirmations). Données : + adresses email, contenu des emails. Hébergement : UE/US avec + clauses contractuelles types. +
Mistral AI + OCR sur les factures uploadées. Les fichiers sont envoyés à Mistral pour + extraction du texte puis supprimés de leur côté. Hébergement : France. +
+

+ Aucun transfert hors UE n'a lieu sans encadrement contractuel approprié (clauses + contractuelles types de la Commission européenne). +

+ +

5. Durée de conservation

+ + +

6. Vos droits

+

+ Conformément au RGPD, vous disposez à tout moment des droits suivants : +

+ +

+ Pour exercer ces droits, écrivez-nous à + privacy@rubis.pro en + précisant l'email associé à votre compte. Nous répondons dans un délai maximal d'un + mois (extensible à trois mois pour les demandes complexes, avec information dans le + mois initial). +

+ +

7. Cookies

+

+ Nous utilisons exclusivement des cookies strictement nécessaires + au fonctionnement du service. Aucun cookie publicitaire ni de mesure d'audience + tierce n'est déposé. +

+ + + + + + + + + + + + + + + + + + + + + +
CookieRôle & durée
rubis_refreshCookie httpOnly maintenant la session connectée. Durée : 30 jours.
localStorage access_token + Token JWT de courte durée (30 min) pour authentifier les appels API. Pas un + cookie au sens technique mais un stockage local du navigateur. +
localStorage rubis.sidebar.collapsedPréférence d'affichage (sidebar repliée ou non). Aucun tracking.
+ +

8. Sécurité

+

+ Nous appliquons les mesures de sécurité usuelles pour un service SaaS : +

+ + +

9. Réclamation auprès de la CNIL

+

+ Si vous estimez, après nous avoir contactés, que vos droits ne sont pas respectés, + vous pouvez adresser une réclamation à la + + Commission Nationale de l'Informatique et des Libertés (CNIL) + . +

+ +

10. Évolutions de cette politique

+

+ Nous pouvons modifier cette politique pour refléter des évolutions légales, + techniques ou organisationnelles. Toute modification substantielle sera annoncée + par email aux utilisateurs concernés au moins 30 jours avant son entrée en vigueur. +

+
+
+ + + + diff --git a/landing/index.html b/landing/index.html index e491f38..8302858 100644 --- a/landing/index.html +++ b/landing/index.html @@ -208,6 +208,15 @@ color: white; } + /* Layout commun pour 1-2 boutons côte-à-côte */ + .cta-row { + display: flex; + gap: 12px; + flex-wrap: wrap; + align-items: center; + margin-top: 28px; + } + /* === BRAND MARK === */ .brand { display: inline-flex; @@ -1911,7 +1920,7 @@ Comment ça marche Tarifs FAQ - Rejoindre la waitlist + Lancer Rubis @@ -1927,21 +1936,18 @@ moyenne 5 heures par semaine.

-
- - -
-
- - - - On vous écrit dès qu'on ouvre les premiers comptes. Merci. +
+ + Lancer Rubis → + + + Voir les tarifs +
- 14 jours offerts au lancement + 3 mois gratuits puis Free 5 factures Hébergement souverain @@ -2495,22 +2501,16 @@ -
+
-

Récupérez vos premières heures dès le lancement.

-

On lance les premiers comptes au printemps 2026. Inscrivez-vous, vous serez prévenu en priorité.

-
- - -
-
- - - - On vous écrit dès qu'on ouvre les premiers comptes. Merci. +

Récupérez vos premières heures dès aujourd'hui.

+

3 mois gratuits illimités, puis le plan Free continue avec 5 factures actives. Pas de carte demandée pour démarrer.

+ -

On vous écrit une fois — quand on ouvre les premiers comptes. Pas avant.

+

Inscription en 30 secondes. Annulation 1-clic à tout moment.

@@ -2532,14 +2532,15 @@ - Rubis Sur l'Ongle + Rubis sur l'ongle
© 2026 · Made in France 🇫🇷
@@ -2552,22 +2553,6 @@ if (window.scrollY > 8) header.classList.add('scrolled'); else header.classList.remove('scrolled'); }); - - // Form handling — replace action with real endpoint (Resend, Formspree, Tally, etc.) - function bindForm(formId, successId) { - const form = document.getElementById(formId); - const success = document.getElementById(successId); - if (!form) return; - form.addEventListener('submit', (e) => { - e.preventDefault(); - // TODO: POST to /api/waitlist or chosen provider - // For now: just show success state - form.style.display = 'none'; - success.classList.add('visible'); - }); - } - bindForm('heroForm', 'heroSuccess'); - bindForm('footerForm', 'footerSuccess'); diff --git a/landing/mentions-legales.html b/landing/mentions-legales.html new file mode 100644 index 0000000..5b0bd40 --- /dev/null +++ b/landing/mentions-legales.html @@ -0,0 +1,174 @@ + + + + + + + + + + + + + Mentions légales · Rubis sur l'ongle + + + + + +
+
+

Informations légales

+

Mentions légales

+

+ Conformément aux articles 6-III et 19 de la Loi n° 2004-575 du 21 juin 2004 pour la + confiance dans l'économie numérique (LCEN), voici les informations relatives à + l'éditeur, à l'hébergeur et aux conditions d'utilisation du site. +

+

Dernière mise à jour : 7 mai 2026

+ + + +

1. Éditeur du site

+

+ Le site rubis.pro (ainsi que l'application + app.rubis.pro) est édité par : +

+
    +
  • Arthur Barré, entrepreneur individuel.
  • +
  • Adresse postale : à compléter lors de la mise en service commerciale.
  • +
  • SIRET : en cours d'attribution.
  • +
  • Numéro de TVA intracommunautaire : non applicable (franchise en base de TVA).
  • +
+ +

2. Hébergement

+

+ Le site et l'application sont hébergés sur une infrastructure auto-hébergée en France + (serveurs Proxmox + cluster Kubernetes K3s) administrée directement par l'éditeur. + Toutes les données utilisateurs (factures, emails) sont stockées sur ce même + environnement, sans externalisation à un cloud tiers grand public. +

+

+ Les données techniques (paiements, emails sortants, OCR) transitent par les + sous-traitants listés dans la + politique de confidentialité. +

+ +

3. Directeur de la publication

+

+ Arthur Barré, en sa qualité d'éditeur, est responsable de la + publication du contenu du site et de l'application Rubis sur l'ongle. +

+ +

4. Contact

+
+

+ Email général : + contact@rubis.pro +

+
+

+ Pour les demandes liées aux données personnelles ou pour exercer vos droits RGPD, + consultez notre politique de confidentialité. +

+ +

5. Propriété intellectuelle

+

+ L'ensemble des contenus présents sur le site et l'application — y compris les textes, + la marque "Rubis sur l'ongle", le logo (◆), les illustrations, la palette graphique, + le code source des templates et de l'application — sont la propriété exclusive + d'Arthur Barré ou font l'objet d'une autorisation d'utilisation. +

+

+ Toute reproduction, représentation, modification, publication ou adaptation totale + ou partielle des éléments du site, quel que soit le moyen ou le procédé utilisé, est + interdite sans autorisation écrite préalable. +

+ +

6. Limitation de responsabilité

+

+ L'éditeur s'efforce d'assurer au mieux l'exactitude et la mise à jour des informations + présentées. Cependant, il ne peut garantir l'absence d'erreurs ou d'omissions et + décline toute responsabilité quant à l'usage qui pourrait être fait du contenu. +

+

+ Concernant l'application Rubis, l'éditeur met à disposition un outil d'assistance à + la relance automatisée. L'utilisateur reste seul responsable du + contenu des relances envoyées à ses clients, du respect de la législation applicable + (notamment la LME pour les délais de paiement) et de la qualification éventuelle + d'une mise en demeure. +

+ +

7. Liens externes

+

+ Le site peut contenir des liens vers des sites tiers (notamment les pages + réglementaires de Stripe, Resend ou la CNIL). L'éditeur n'exerce aucun contrôle + sur ces sites et décline toute responsabilité quant à leur contenu ou aux pratiques + de confidentialité qui leur sont propres. +

+ +

8. Cookies

+

+ Le site landing rubis.pro ne dépose aucun cookie de mesure + d'audience ni de traçage publicitaire. L'application + app.rubis.pro utilise uniquement des cookies strictement + nécessaires au fonctionnement (session d'authentification, refresh tokens). + Les détails sont décrits dans la + politique de confidentialité. +

+ +

9. Droit applicable et juridiction

+

+ Les présentes mentions légales sont régies par le droit français. En cas de litige + ou de désaccord, et après tentative de recherche d'une solution amiable, compétence + est attribuée aux tribunaux français compétents, conformément aux règles de + procédure en vigueur. +

+
+
+ + + +