<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<title>Paroles & Plumes – Les mots pour le dire</title>
<meta name="description" content="Paroles & Plumes – Lettres, poèmes et chansons personnalisés pour exprimer vos émotions avec élégance." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=DM+Serif+Text&display=swap" rel="stylesheet" />
<style>
:root {
--bg: #f9f6f2;
--primary: #786043;
--secondary: #c9a68f;
--accent: #211b12;
--text-main: #2c2c2c;
--text-subtle: #5c5240;
--border-radius: 16px;
--transition: all 0.3s ease;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'DM Serif Text', serif;
background-color: var(--bg);
color: var(--text-main);
line-height: 1.6;
overflow-x: hidden;
}
/* Bandeau cookies */
#cookieBanner {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: var(--accent);
color: #fff;
padding: 20px;
text-align: center;
z-index: 9999;
box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
transform: translateY(100%);
transition: transform 0.4s ease;
}
#cookieBanner.show {
transform: translateY(0);
}
#cookieBanner p {
font-size: 14px;
margin-bottom: 12px;
max-width: 800px;
margin-left: auto;
margin-right: auto;
}
#cookieBanner button {
margin: 0 8px;
padding: 10px 24px;
border: none;
border-radius: 999px;
font-size: 14px;
cursor: pointer;
transition: var(--transition);
}
#cookieBanner .accept {
background: var(--secondary);
color: var(--accent);
}
#cookieBanner .accept:hover {
background: #d9b28d;
}
#cookieBanner .decline {
background: transparent;
color: #fff;
border: 2px solid #fff;
}
#cookieBanner .decline:hover {
background: rgba(255,255,255,0.1);
}
header {
background-color: var(--accent);
color: #fff;
padding: 20px 30px;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 3px solid var(--secondary);
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.brand {
display: flex;
align-items: center;
gap: 12px;
}
.brand-logo {
width: 44px;
height: 44px;
border-radius: 10px;
background: radial-gradient(circle at 30% 20%, #ffffff 0, #d8b28e 50%, #7a563a 100%);
display: flex;
align-items: center;
justify-content: center;
font-family: 'Playfair Display', serif;
font-size: 18px;
color: var(--accent);
font-weight: bold;
}
.brand-title {
font-family: 'Playfair Display', serif;
font-size: 24px;
letter-spacing: 0.05em;
}
nav {
display: flex;
gap: 16px;
}
nav a {
color: #fff;
font-size: 14px;
text-decoration: none;
transition: var(--transition);
position: relative;
padding: 4px 0;
}
nav a::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 0;
height: 2px;
background: var(--secondary);
transition: width 0.3s ease;
}
nav a:hover::after {
width: 100%;
}
main {
max-width: 1200px;
margin: 0 auto;
padding: 40px 20px;
}
.hero {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 40px;
margin-bottom: 60px;
animation: fadeIn 1s ease;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.hero-text {
flex: 1 1 50%;
min-width: 280px;
}
.hero-text h1 {
font-family: 'Playfair Display', serif;
font-size: 42px;
color: var(--primary);
margin-bottom: 16px;
line-height: 1.3;
}
.hero-text p {
font-size: 18px;
color: var(--text-subtle);
margin-bottom: 24px;
max-width: 540px;
}
.btn {
display: inline-block;
padding: 12px 22px;
border-radius: 999px;
font-size: 15px;
text-decoration: none;
margin-right: 12px;
transition: var(--transition);
border: none;
cursor: pointer;
font-family: 'DM Serif Text', serif;
}
.btn-primary {
background: linear-gradient(135deg, #f7d9b5, var(--secondary));
color: var(--accent);
}
.btn-primary:hover {
background: linear-gradient(135deg, #ffe9d2, #d9b28d);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.btn-secondary {
background: transparent;
border: 2px solid var(--secondary);
color: var(--primary);
}
.btn-secondary:hover {
background: var(--secondary);
color: var(--accent);
transform: translateY(-2px);
}
.hero-image {
flex: 1 1 45%;
min-width: 260px;
}
.hero-image img {
width: 100%;
border-radius: var(--border-radius);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
object-fit: cover;
transition: var(--transition);
}
.hero-image img:hover {
transform: scale(1.02);
}
/* Services */
.services {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
margin-bottom: 60px;
}
.service-card {
background: #fff;
border: 1px solid #e5dcd4;
border-radius: var(--border-radius);
padding: 24px 20px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
display: flex;
flex-direction: column;
gap: 12px;
transition: var(--transition);
}
.service-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
.service-card img {
width: 100%;
border-radius: 12px;
margin-bottom: 12px;
object-fit: cover;
height: 160px;
}
.service-card h3 {
font-family: 'Playfair Display', serif;
font-size: 20px;
color: var(--primary);
}
.service-card p {
font-size: 14px;
color: var(--text-subtle);
flex: 1 1 auto;
}
/* Process */
.process {
margin-bottom: 60px;
}
.process-steps {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-top: 24px;
}
.step {
background: #fff;
border: 1px solid #e5dcd4;
border-radius: var(--border-radius);
padding: 20px 16px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
transition: var(--transition);
position: relative;
overflow: hidden;
}
.step::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 4px;
height: 0;
background: var(--secondary);
transition: height 0.3s ease;
}
.step:hover::before {
height: 100%;
}
.step:hover {
transform: translateY(-3px);
}
.step h4 {
font-family: 'Playfair Display', serif;
font-size: 18px;
color: var(--primary);
margin-bottom: 6px;
}
.step span {
display: block;
font-size: 12px;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--secondary);
margin-bottom: 4px;
}
.step p {
font-size: 14px;
color: var(--text-subtle);
}
/* Pricing */
.pricing {
margin-bottom: 60px;
}
.pricing-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
background: #fff;
border-radius: var(--border-radius);
overflow: hidden;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
.pricing-table th,
.pricing-table td {
padding: 14px 12px;
border-bottom: 1px solid #e5dcd4;
text-align: left;
font-size: 14px;
}
.pricing-table th {
background: var(--secondary);
color: var(--accent);
font-family: 'Playfair Display', serif;
}
.pricing-table tbody tr {
transition: var(--transition);
}
.pricing-table tbody tr:hover {
background: #faf8f5;
}
.pricing-table td.price {
font-weight: bold;
color: var(--primary);
}
.pricing-table td .order-btn {
display: inline-block;
padding: 6px 12px;
background: var(--primary);
color: #fff;
border-radius: 999px;
font-size: 12px;
text-decoration: none;
transition: var(--transition);
border: none;
cursor: pointer;
}
.pricing-table td .order-btn:hover {
background: #604b35;
transform: translateY(-1px);
}
.pricing-note {
margin-top: 16px;
font-size: 13px;
color: var(--text-subtle);
background: #fff;
padding: 16px;
border-radius: 8px;
border-left: 4px solid var(--secondary);
}
/* Calendrier de rendez-vous */
#calendrier {
background: #fff;
border: 1px solid #e5dcd4;
border-radius: var(--border-radius);
padding: 24px;
margin-top: 24px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
display: none;
animation: slideDown 0.4s ease;
}
@keyframes slideDown {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
#calendrier.show {
display: block;
}
#calendrier h3 {
font-family: 'Playfair Display', serif;
font-size: 22px;
color: var(--primary);
margin-bottom: 12px;
}
/* Testimonials */
.testimonials {
margin-bottom: 60px;
}
.testimonial-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 20px;
margin-top: 24px;
}
.testimonial {
background: #fff;
border: 1px solid #e5dcd4;
border-radius: var(--border-radius);
padding: 20px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
transition: var(--transition);
position: relative;
}
.testimonial::before {
content: '"';
position: absolute;
top: -10px;
left: 20px;
font-size: 60px;
color: var(--secondary);
opacity: 0.3;
font-family: 'Playfair Display', serif;
}
.testimonial:hover {
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
.testimonial p {
font-size: 14px;
color: var(--text-subtle);
margin-bottom: 8px;
font-style: italic;
}
.testimonial strong {
display: block;
margin-bottom: 8px;
color: var(--primary);
}
/* Contact */
.contact {
margin-bottom: 60px;
}
.contact ul {
list-style: none;
margin-top: 20px;
}
.contact li {
display: flex;
gap: 12px;
margin-bottom: 16px;
align-items: flex-start;
padding: 16px;
background: #fff;
border-radius: 8px;
transition: var(--transition);
}
.contact li:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.contact li span {
font-size: 22px;
margin-top: 2px;
}
.contact li div {
font-size: 14px;
color: var(--text-subtle);
}
.contact a {
color: var(--primary);
text-decoration: none;
transition: var(--transition);
}
.contact a:hover {
color: var(--secondary);
}
/* Legal sections */
.legal-section {
margin-bottom: 60px;
}
.legal-section ul {
margin-top: 16px;
}
.legal-section li {
margin-bottom: 12px;
}
footer {
padding: 30px 20px;
background: var(--accent);
color: #fff;
text-align: center;
font-size: 13px;
}
footer a {
color: var(--secondary);
text-decoration: none;
margin: 0 8px;
transition: var(--transition);
}
footer a:hover {
color: #fff;
}
/* Section titles */
.section-title {
font-family: 'Playfair Display', serif;
font-size: 28px;
color: var(--primary);
margin-bottom: 12px;
}
.section-subtitle {
font-size: 16px;
color: var(--text-subtle);
max-width: 700px;
}
/* Responsive */
@media (max-width: 768px) {
header {
flex-direction: column;
gap: 16px;
}
nav {
flex-wrap: wrap;
justify-content: center;
}
.hero-text h1 {
font-size: 32px;
}
.pricing-table {
font-size: 12px;
}
.pricing-table th,
.pricing-table td {
padding: 10px 8px;
}
}
/* Notification */
.notification {
position: fixed;
top: 80px;
right: 20px;
background: var(--primary);
color: #fff;
padding: 16px 24px;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0,0,0,0.2);
z-index: 9998;
opacity: 0;
transform: translateX(400px);
transition: all 0.3s ease;
}
.notification.show {
opacity: 1;
transform: translateX(0);
}
</style>
</head>
<body>
<!-- Bandeau cookies -->
<div id="cookieBanner">
<p>Ce site utilise des cookies essentiels pour son fonctionnement. Aucun cookie publicitaire ou de traçage n'est utilisé. En continuant votre navigation, vous acceptez l'utilisation de ces cookies.</p>
<button class="accept" onclick="acceptCookies()">Accepter</button>
<button class="decline" onclick="declineCookies()">Refuser</button>
</div>
<!-- Notification -->
<div id="notification" class="notification"></div>
<!-- En-tête avec la marque et la navigation -->
<header>
<div class="brand">
<div class="brand-logo">DC</div>
<div class="brand-title">Paroles & Plumes</div>
</div>
<nav>
<a href="#services">Services</a>
<a href="#processus">Processus</a>
<a href="#tarifs">Tarifs</a>
<a href="#temoignages">Témoignages</a>
<a href="#contact">Contact</a>
</nav>
</header>
<main>
<!-- Section de bienvenue / Hero -->
<section class="hero">
<div class="hero-text">
<h1>Je mets vos émotions en mots</h1>
<p>Depuis plus de dix ans, Paroles & Plumes accompagne celles et ceux qui peinent à exprimer
ce qu'ils ressentent. Lettres, poèmes et chansons sur-mesure pour dire l'indicible, guérir,
remercier ou célébrer un moment unique.</p>
<a href="#tarifs" class="btn btn-primary">Découvrir les offres</a>
<a href="#contact" class="btn btn-secondary">Me contacter</a>
</div>
<div class="hero-image">
<img src="images/hero.jpg" alt="Illustration d'écriture à la plume" />
</div>
</section>
<!-- Services -->
<section id="services" class="services">
<div class="service-card">
<img src="images/textes-intimes.jpg" alt="Livre de poésie et plume" />
<h3>Textes intimes</h3>
<p>Messages d'amour, déclarations, réconciliations ou hommages : je trouve les mots justes pour
exprimer ce que votre cœur ressent.</p>
</div>
<div class="service-card">
<img src="images/chansons.jpg" alt="Microphone et notes de musique" />
<h3>Chansons personnalisées</h3>
<p>Une chanson unique qui raconte votre histoire et vos sentiments. Paroles sur mesure et musique
adaptée à votre univers.</p>
</div>
<div class="service-card">
<img src="images/confidentialite.jpg" alt="Symbole de confidentialité" />
<h3>Confidentialité absolue</h3>
<p>Vos émotions et votre histoire restent protégées. Un engagement contractuel de confidentialité
perpétuelle vous garantit une totale discrétion.</p>
</div>
</section>
<!-- Processus -->
<section id="processus" class="process">
<h2 class="section-title">Comment ça se passe ?</h2>
<p class="section-subtitle">Chaque création démarre par un échange humain. Selon votre préférence, racontez-moi votre histoire
par un message vocal ou lors d'un rendez-vous. Ensemble, nous bâtirons un texte fidèle à vos
émotions.</p>
<div class="process-steps">
<div class="step">
<span>Étape 1</span>
<h4>Vous racontez</h4>
<p>Partagez votre situation, vos sentiments et l'intention de votre message. Je vous écoute sans
jugement.</p>
</div>
<div class="step">
<span>Étape 2</span>
<h4>Je crée</h4>
<p>J'écris ou compose en respectant le ton, le rythme et les mots qui vous ressemblent.</p>
</div>
<div class="step">
<span>Étape 3</span>
<h4>Nous ajustons</h4>
<p>Une version préliminaire vous est envoyée. Vos retours permettent d'affiner jusqu'à ce que le texte
reflète parfaitement votre intention.</p>
</div>
<div class="step">
<span>Étape 4</span>
<h4>Vous recevez</h4>
<p>La version finale, en PDF ou fichier audio, vous est remise. Vous pouvez la partager, la lire
ou la garder pour toujours.</p>
</div>
</div>
</section>
<!-- Tarifs -->
<section id="tarifs" class="pricing">
<h2 class="section-title">Nos offres & tarifs</h2>
<p class="section-subtitle">Les tarifs ci-dessous comprennent l'écoute, la création et un ajustement personnalisé. Vous pouvez réserver et payer directement en ligne via Stripe. Le délai standard de livraison est de quatre jours ouvrés. Une option express réduit ce délai de moitié.</p>
<table class="pricing-table">
<thead>
<tr>
<th>Offre</th>
<th>Détails</th>
<th>Prix</th>
<th>Commander</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lettre 200 mots – message vocal</td>
<td>Pour les messages courts et sincères. Échange par message vocal.<br /><em>Délai : 4 jours</em></td>
<td class="price">25 €</td>
<td>
<a class="order-btn" href="https://buy.stripe.com/test_7sYdRb2RFdcUfXNfBObsc00" target="_blank" rel="noopener">Commander</a>
</td>
</tr>
<tr>
<td>Lettre 200 mots – rendez-vous</td>
<td>Échange en direct (visio ou téléphone) pour un texte plus précis.<br /><em>Délai : 4 jours</em></td>
<td class="price">35 €</td>
<td>
<button class="order-btn" onclick="bookWithAppointment('https://buy.stripe.com/test_00waEZcsf5KsaDtfBObsc02', 'Lettre 200 mots – rendez-vous', 35)">Commander</button>
</td>
</tr>
<tr>
<td>Lettre 400 mots – message vocal</td>
<td>Lettre développée et nuancée avec échanges vocaux.<br /><em>Délai : 4 jours</em></td>
<td class="price">35 €</td>
<td>
<a class="order-btn" href="https://buy.stripe.com/test_8x214pak76OwdPFahubsc01" target="_blank" rel="noopener">Commander</a>
</td>
</tr>
<tr>
<td>Lettre 400 mots – rendez-vous</td>
<td>Échange approfondi pour une lettre personnalisée et détaillée.<br /><em>Délai : 4 jours</em></td>
<td class="price">45 €</td>
<td>
<button class="order-btn" onclick="bookWithAppointment('https://buy.stripe.com/test_5kQ7sNbob8WE7rhgFSbsc03', 'Lettre 400 mots – rendez-vous', 45)">Commander</button>
</td>
</tr>
<tr>
<td>Poème – message vocal (≤ 300 mots)</td>
<td>Poème intime écrit à partir de votre témoignage audio.<br /><em>Délai : 4 jours</em></td>
<td class="price">35 €</td>
<td>
<a class="order-btn" href="https://buy.stripe.com/test_28E3cx0Jxfl226XexKbsc04" target="_blank" rel="noopener">Commander</a>
</td>
</tr>
<tr>
<td>Poème – rendez-vous (≤ 300 mots)</td>
<td>Poème rédigé après un entretien personnalisé.<br /><em>Délai : 4 jours</em></td>
<td class="price">45 €</td>
<td>
<button class="order-btn" onclick="bookWithAppointment('https://buy.stripe.com/test_eVq9AV3VJb4M5j91KYbsc06', 'Poème – rendez-vous', 45)">Commander</button>
</td>
</tr>
<tr>
<td>Chanson – message vocal</td>
<td>Texte et mélodie créés pour votre événement après un message vocal.<br /><em>Délai : 4 jours</em></td>
<td class="price">45 €</td>
<td>
<a class="order-btn" href="https://buy.stripe.com/test_00w7sN8bZa0I26XdtGbsc07" target="_blank" rel="noopener">Commander</a>
</td>
</tr>
<tr>
<td>Chanson – rendez-vous</td>
<td>Rendez-vous (visio ou téléphone) pour élaborer votre chanson personnalisée.<br /><em>Délai : 4 jours</em></td>
<td class="price">55 €</td>
<td>
<button class="order-btn" onclick="bookWithAppointment('https://buy.stripe.com/test_eVq8wR3VJ1uceTJ3T6bsc0a', 'Chanson – rendez-vous', 55)">Commander</button>
</td>
</tr>
<tr>
<td>Chanson – message vocal (express)</td>
<td>Production urgente de votre chanson après message vocal.<br /><em>Délai : 2 jours</em></td>
<td class="price">56,25 €</td>
<td>
<a class="order-btn" href="https://buy.stripe.com/test_8x28wRfEregYh1R4Xabsc09" target="_blank" rel="noopener">Commander</a>
</td>
</tr>
<tr>
<td>Chanson – rendez-vous (express)</td>
<td>Rendez-vous et livraison accélérée de votre chanson.<br /><em>Délai : 2 jours</em></td>
<td class="price">68,75 €</td>
<td>
<button class="order-btn" onclick="bookWithAppointment('https://buy.stripe.com/test_dRm4gB0Jxgp67rh0GUbsc08', 'Chanson – rendez-vous (express)', 68.75)">Commander</button>
</td>
</tr>
</tbody>
</table>
<div class="pricing-note">
<strong>Comment commander :</strong> Pour les prestations sans rendez-vous (message vocal), cliquez directement sur "Commander" pour accéder au paiement Stripe. Pour les prestations avec rendez-vous, sélectionnez d'abord un créneau dans le calendrier Google Calendar qui s'affichera, puis vous serez redirigé vers le paiement. Les prix indiqués comprennent l'écoute, la création et un ajustement personnalisé. Aucun frais supplémentaire ne sera facturé.
</div>
<!-- Calendrier de prise de rendez-vous avec Google Calendar -->
<div id="calendrier">
<h3>Choisissez votre créneau de rendez-vous</h3>
<p style="font-size:14px; color:var(--text-subtle); margin-bottom:20px;">
Sélectionnez un créneau qui vous convient dans le calendrier ci-dessous. Après avoir réservé, vous serez redirigé vers le paiement.
</p>
<!-- Option 1: Iframe Google Calendar (remplacez par votre URL de réservation Google Calendar) -->
<div style="text-align: center; margin: 20px 0;">
<iframe
src="https://calendar.google.com/calendar/appointments/schedules/YOUR_SCHEDULE_ID?gv=true"
style="border: 0; border-radius: 12px;"
width="100%"
height="600"
frameborder="0"
scrolling="no">
</iframe>
</div>
<!-- Option 2: Bouton vers Google Calendar (si vous préférez un lien externe) -->
<div style="text-align: center; margin-top: 20px; display: none;">
<a href="https://calendar.google.com/calendar/appointments/YOUR_SCHEDULE_ID"
target="_blank"
class="btn btn-primary"
style="display: inline-block; margin: 0;">
📅 Ouvrir le calendrier de réservation
</a>
</div>
<p style="font-size: 13px; color: var(--text-subtle); margin-top: 20px; text-align: center;">
<strong>Note :</strong> Après avoir réservé votre créneau, vous serez automatiquement redirigé vers la page de paiement Stripe.
</p>
</div>
</section>
<!-- Témoignages -->
<section id="temoignages" class="testimonials">
<h2 class="section-title">Ils m'ont fait confiance</h2>
<p class="section-subtitle">Quelques mots de clients qui ont osé confier leur histoire à Paroles & Plumes. Ces témoignages
sont anonymisés par respect pour leur intimité mais reflètent l'émotion vécue.</p>
<div class="testimonial-list">
<div class="testimonial">
<strong>Marie L. – Lettre de réconciliation</strong>
<p>Grâce à votre lettre, j'ai réussi à renouer avec ma sœur après des années de silence. Les
mots étaient justes et délicats, exactement ce que je n'arrivais pas à dire.</p>
</div>
<div class="testimonial">
<strong>Jonathan R. – Poème d'adieu</strong>
<p>Votre poème a permis à toute ma famille d'exprimer notre douleur et notre amour lors des
funérailles de mon grand-père. C'était d'une beauté bouleversante.</p>
</div>
<div class="testimonial">
<strong>Sonia T. – Chanson de mariage</strong>
<p>La chanson que vous avez créée pour notre mariage a ému tous nos invités. Elle nous
ressemble tellement que nous la fredonnons encore chaque jour.</p>
</div>
</div>
</section>
<!-- Contact -->
<section id="contact" class="contact">
<h2 class="section-title">Une question ? Parlons-en.</h2>
<p class="section-subtitle">Vous hésitez entre plusieurs formats ? Votre situation est particulière ? Envoyez-moi un
message et je vous répondrai sous 24 heures.</p>
<ul>
<li>
<span>📧</span>
<div>
<strong>Email</strong><br />
<a href="mailto:contact@parolesplumes.com">contact@parolesplumes.com</a>
</div>
</li>
<li>
<span>🏠</span>
<div>
<strong>Paroles & Plumes</strong><br />
Prestations d'écriture personnalisée – lettres, poèmes, chansons.
</div>
</li>
</ul>
</section>
<!-- Conditions générales d'utilisation -->
<section id="conditions" class="legal-section">
<h2 class="section-title">Conditions générales d'utilisation</h2>
<p class="section-subtitle">Les présentes conditions générales définissent les règles d'utilisation du site Paroles & Plumes. Elles
constituent un contrat entre le propriétaire du site et ses utilisateurs.</p>
<ul style="font-size:15px; color:var(--text-subtle); padding-left:20px; list-style:disc;">
<li>Objet : définir les modalités d'accès aux services proposés et les droits et devoirs des
utilisateurs.</li>
<li>Responsabilités : l'éditeur ne peut être tenu responsable des dommages directs ou
indirects liés à l'utilisation du site. L'utilisateur s'engage à ne pas porter atteinte aux
droits d'autrui.</li>
<li>Propriété intellectuelle : les contenus (textes, images, musiques) sont protégés. Toute
reproduction est interdite sans l'autorisation expresse de l'auteur.</li>
<li>Modification : Paroles & Plumes se réserve le droit de modifier ces conditions. Les
utilisateurs seront invités à consulter régulièrement cette page.</li>
</ul>
</section>
<!-- Politique de confidentialité -->
<section id="confidentialite" class="legal-section">
<h2 class="section-title">Politique de confidentialité</h2>
<p class="section-subtitle">Conformément au Règlement général sur la protection des données (RGPD) et à la loi
Informatique et Libertés, cette politique explique comment Paroles & Plumes collecte et traite
les données personnelles.</p>
<ul style="font-size:15px; color:var(--text-subtle); padding-left:20px; list-style:disc;">
<li>Données collectées : uniquement les informations fournies volontairement via l'email de
contact (nom, prénom, adresse e-mail). Aucune donnée sensible n'est collectée.</li>
<li>Finalité : répondre aux demandes et réaliser les prestations commandées. Les données ne
seront jamais cédées à des tiers.</li>
<li>Cookies : le site utilise uniquement des cookies nécessaires au fonctionnement (par exemple
pour mémoriser votre panier). Aucun cookie à des fins publicitaires ou de traçage
n'est installé.</li>
<li>Droits des utilisateurs : vous pouvez demander l'accès, la rectification ou la suppression de
vos données personnelles à tout moment en écrivant à l'adresse e-mail ci-dessus. Vous
disposez également d'un droit d'opposition au traitement.</li>
</ul>
</section>
<!-- Mentions légales -->
<section id="legales" class="legal-section">
<h2 class="section-title">Mentions légales</h2>
<p class="section-subtitle">Conformément à la loi sur la confiance en l'économie numérique, les sites internet doivent
indiquer les informations permettant d'identifier leur éditeur et leur hébergeur.</p>
<p style="font-size:15px; color:var(--text-subtle); max-width:800px;">Paroles & Plumes est une entreprise individuelle proposant des services d'écriture
personnalisée (lettres, poèmes et chansons).<br />
<strong>Éditeur :</strong> [Votre nom complet ou raison sociale] – [Adresse complète] –
[Numéro de téléphone] – [Adresse e-mail].<br />
<strong>Hébergement :</strong> [Nom de l'hébergeur] – [Adresse].<br />
<strong>Directeur de la publication :</strong> [Nom du responsable].<br />
<em>Remplacez les informations entre crochets par vos propres coordonnées.</em>
</p>
</section>
</main>
<!-- Pied de page -->
<footer>
© <span id="year"></span> Paroles & Plumes – Tous droits réservés. |
<a href="#conditions">Conditions générales</a> |
<a href="#confidentialite">Politique de confidentialité</a> |
<a href="#legales">Mentions légales</a>
</footer>
<script>
// Mise à jour de l'année automatiquement
document.getElementById('year').textContent = new Date().getFullYear();
// Gestion des cookies
function showCookieBanner() {
const banner = document.getElementById('cookieBanner');
const accepted = localStorage.getItem('cookiesAccepted');
if (!accepted) {
setTimeout(() => {
banner.classList.add('show');
}, 1000);
}
}
function acceptCookies() {
localStorage.setItem('cookiesAccepted', 'true');
document.getElementById('cookieBanner').classList.remove('show');
showNotification('Cookies acceptés. Merci !');
}
function declineCookies() {
localStorage.setItem('cookiesAccepted', 'declined');
document.getElementById('cookieBanner').classList.remove('show');
showNotification('Paramètres enregistrés.');
}
// Notifications
function showNotification(message) {
const notif = document.getElementById('notification');
notif.textContent = message;
notif.classList.add('show');
setTimeout(() => {
notif.classList.remove('show');
}, 3000);
}
// Gestion du processus de prise de rendez-vous avec Google Calendar
let pendingService = null;
let pendingLink = null;
function bookWithAppointment(stripeLink, serviceName, price) {
pendingService = { name: serviceName, price: price };
pendingLink = stripeLink;
const calendar = document.getElementById('calendrier');
calendar.classList.add('show');
// Scroll vers le calendrier
calendar.scrollIntoView({ behavior: 'smooth', block: 'center' });
showNotification('📅 Veuillez sélectionner un créneau dans Google Calendar. Vous serez ensuite redirigé vers le paiement.');
// Stocker le lien de paiement pour l'utiliser après la réservation
sessionStorage.setItem('pendingPayment', stripeLink);
sessionStorage.setItem('serviceName', serviceName);
}
// Fonction appelée après qu'un rendez-vous est pris sur Google Calendar
// Cette fonction peut être déclenchée par un retour de Google Calendar
function handleAppointmentBooked() {
const paymentLink = sessionStorage.getItem('pendingPayment');
const serviceName = sessionStorage.getItem('serviceName');
if (paymentLink) {
showNotification('✅ Rendez-vous confirmé ! Redirection vers le paiement...');
setTimeout(() => {
window.location.href = paymentLink;
}, 2000);
}
}
// Initialisation du site
document.addEventListener('DOMContentLoaded', () => {
showCookieBanner();
// Vérifier si on revient d'une réservation Google Calendar
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('appointment') === 'confirmed') {
handleAppointmentBooked();
}
});
// Animation au scroll
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}
});
}, observerOptions);
// Observer les sections pour animation
document.querySelectorAll('.service-card, .step, .testimonial').forEach(el => {
el.style.opacity = '0';
el.style.transform = 'translateY(20px)';
el.style.transition = 'opacity 0.6s ease, transform 0.6s ease';
observer.observe(el);
});
</script>
</body>
</html>