@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=Dancing+Script:wght@600&family=DM+Sans:wght@400;500;700&display=swap');

:root{
  --cream:#F7F4EF;
  --purple-deep:#5e4373;
  --olive:#7C8B5F;
  --gold:#C9A84C;
  --ink:#2B2B2B;
  --line:#E4DFD5;
  --red:#B5473C;
  --green:#3d7a34;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'DM Sans',Arial,sans-serif;
  line-height:1.6;
}
a{color:inherit;}

.hero{
  text-align:center;
  padding:64px 24px 48px;
  background:linear-gradient(180deg,#ffffff 0%,var(--cream) 100%);
  border-bottom:1px solid var(--line);
}
.hero .signature{
  font-family:'Dancing Script',cursive;
  color:var(--purple-deep);
  font-size:42px;
  display:block;
  margin-bottom:8px;
}
.hero h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(24px,4vw,36px);
  margin:0 0 14px;
  max-width:680px;
  margin-left:auto;
  margin-right:auto;
}
.hero .soustitre{
  max-width:520px;
  margin:0 auto;
  color:#555;
  font-size:15px;
}

main{max-width:920px;margin:0 auto;padding:0 20px;}

.portes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:0 0 56px;
}
@media (max-width:680px){ .portes{grid-template-columns:1fr;} }

.porte{
  display:block;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:28px 26px;
  text-decoration:none;
  color:var(--ink);
  box-shadow:0 4px 20px rgba(94,67,115,.06);
  transition:transform .15s ease, box-shadow .15s ease;
}
.porte:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(94,67,115,.12);}
.porte .eyebrow{
  display:block;
  font-size:12px;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--olive);
  font-weight:700;
  margin-bottom:8px;
}
.porte-alt .eyebrow{color:var(--gold);}
.porte h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;
  margin:0 0 10px;
  color:var(--purple-deep);
}
.porte p{font-size:14px;color:#555;margin:0 0 16px;}
.porte .cta{font-size:14px;font-weight:700;color:var(--purple-deep);}

.confirmation-globale{margin-bottom:40px;}
.carte-confirmation{
  background:#E7EEDD;
  border-radius:10px;
  padding:20px 24px;
  text-align:center;
  color:var(--green);
  font-weight:500;
}
.carte-confirmation.erreur{background:#F4DEDB;color:var(--red);}
.carte-confirmation .icone{font-size:28px;margin-bottom:6px;}

.bloc-form{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:36px 32px;
  margin-bottom:32px;
  scroll-margin-top:24px;
}
.bloc-alt{background:#FBF8F2;}
.bloc-form h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:24px;
  color:var(--purple-deep);
  margin:0 0 12px;
}
.bloc-form .intro{font-size:14px;color:#555;max-width:600px;margin-bottom:24px;}

.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:520px){ .grille-2{grid-template-columns:1fr;} }

label{font-size:13px;font-weight:700;color:var(--purple-deep);display:block;margin-bottom:5px;}
input[type=text],input[type=email],select,textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:14px;
  margin-bottom:16px;
  background:#fff;
}
textarea{resize:vertical;}

.consentement{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:13px;
  font-weight:400;
  color:#555;
  margin-bottom:20px;
}
.consentement input{width:auto;margin-top:3px;}

.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}

/* --- Liens boutiques (page d'accueil) --- */
.boutiques{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:6px;
}
.btn-boutique{
  display:inline-block;
  padding:12px 24px;
  border-radius:8px;
  text-decoration:none;
  font-weight:700;
  font-size:14px;
  background:var(--purple-deep);
  color:#fff;
}
.btn-boutique-alt{background:var(--olive);}
.produits-exemples{margin-bottom:48px;padding-top:24px;}

/* --- Mini-header (pages formulaire indépendantes) --- */
.mini-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 24px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.mini-header .retour{
  font-size:14px;
  color:var(--purple-deep);
  text-decoration:none;
  font-weight:500;
}
.mini-header .signature.small{
  font-family:'Dancing Script',cursive;
  color:var(--purple-deep);
  font-size:24px;
}
.page-etroite{max-width:640px;margin:0 auto;padding:40px 20px;}
.bloc-page{margin-bottom:0;}
.bloc-page .eyebrow{
  display:block;
  font-size:12px;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--olive);
  font-weight:700;
  margin-bottom:10px;
}
.bloc-page h1{
  font-family:'Playfair Display',Georgia,serif;
  font-size:26px;
  color:var(--purple-deep);
  margin:0 0 14px;
}
.acces-direct{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px 20px;
  margin-bottom:28px;
}
.acces-direct p{font-size:13px;color:#555;margin:0 0 12px;}
.acces-direct .btn-boutique{padding:9px 18px;font-size:13px;}

.btn-principal{
  background:var(--purple-deep);
  color:#fff;
  border:none;
  padding:13px 26px;
  border-radius:8px;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}
.btn-principal:hover{opacity:.92;}

footer{
  text-align:center;
  padding:32px 20px 48px;
  max-width:640px;
  margin:0 auto;
}
.legal{font-size:12px;color:#888;text-align:left;margin-bottom:18px;}
.legal summary{cursor:pointer;color:var(--purple-deep);font-weight:700;text-align:center;}
.legal p{margin-top:10px;}
footer .copy{font-size:13px;color:#999;}
