:root{
  --creme:#ffffff;
  --creme-2:#f3ebdd;
  --bordeaux:#7d2f3a;
  --bordeaux-fonce:#5e2029;
  --corail:#e8756a;
  --bleu-mer:#a9c6c9;
  --bleu-nuit:#233240;
  --sable:#e9dcc3;
  --or-couchant:#d98e4a;
  --encre:#2e2622;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Jost',sans-serif;
  background:var(--creme);
  color:var(--encre);
  line-height:1.65;
  overflow-x:hidden;
}
::selection{background:var(--corail);color:#fff}
.script{font-family:'Dancing Script',cursive}
.hand{font-family:'Caveat',cursive}
a{color:inherit}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 6vw;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(125,47,58,.12);
}

/* ---------- BANDEAU LIVRAISON OFFERTE ---------- */
.bandeau-promo{
  position:fixed;top:0;left:0;right:0;z-index:101;
  height:2.3rem;
  background:var(--bordeaux);
  color:#fff;
  overflow:hidden;
  display:flex;align-items:center;
  white-space:nowrap;
}
.bandeau-promo-track{
  display:flex;
  width:max-content;
  animation:defilement-bandeau 20s linear infinite;
}
.bandeau-promo-track span{
  padding:0 3rem;
  font-size:.85rem;
  font-weight:500;
  letter-spacing:.03em;
}
@keyframes defilement-bandeau{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
body.a-bandeau nav{top:2.3rem}
body.a-bandeau main{padding-top:7.3rem}
@media (max-width:840px){
  .bandeau-promo-track span{font-size:.78rem;padding:0 2rem}
}

/* ---------- ONGLETS DE CATÉGORIE ---------- */
.categories-nav{
  display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;
  margin:0 6vw 3rem;
}
.cat-tab{
  text-decoration:none;color:var(--bordeaux);
  border:1px solid rgba(125,47,58,.3);border-radius:99px;
  padding:.55rem 1.4rem;font-size:.9rem;font-weight:500;
  transition:background .2s,color .2s;
}
.cat-tab:hover{background:rgba(125,47,58,.08)}
.cat-tab.actif{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}

/* ---------- RÉSUMÉ AVIS GLOBAL ---------- */
.avis-resume-global{
  text-align:center;margin:0 auto 3rem;max-width:640px;
  font-size:.95rem;color:#6b5f57;
}
.avis-resume-global .etoiles{color:var(--corail);letter-spacing:1px;font-size:1.15rem;margin-right:.4rem}
.avis-resume-global blockquote{
  font-family:'Caveat',cursive;font-size:1.3rem;color:var(--bordeaux);
  margin-top:.6rem;font-style:italic;
}

/* ---------- NEWSLETTER ---------- */
.newsletter-bloc{
  background:var(--bleu-nuit);color:#fff;
  padding:3rem 6vw;text-align:center;
}
.newsletter-bloc h3{color:#fff;margin-bottom:.5rem}
.newsletter-bloc p{font-weight:300;opacity:.85;max-width:480px;margin:0 auto 1.4rem}
.newsletter-form{
  display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;max-width:420px;margin:0 auto;
}
.newsletter-form input[type="email"]{
  flex:1;min-width:220px;padding:.75rem 1rem;border-radius:99px;border:none;font-family:'Jost',sans-serif;
}
.newsletter-form button{
  padding:.75rem 1.5rem;border-radius:99px;border:none;background:var(--corail);color:#fff;
  font-family:'Jost',sans-serif;font-weight:500;cursor:pointer;transition:opacity .2s;
}
.newsletter-form button:hover{opacity:.85}
.newsletter-message{font-size:.85rem;margin-top:.8rem;opacity:.9}

/* ---------- MISE EN AVANT SUR-MESURE ---------- */
.sur-mesure-bandeau{
  display:grid;grid-template-columns:280px 1fr;align-items:stretch;
  background:var(--creme-2);border-radius:10px;overflow:hidden;
  text-decoration:none;color:inherit;
  box-shadow:0 10px 30px rgba(35,50,64,.1);
  transition:transform .25s ease;
}
.sur-mesure-bandeau:hover{transform:translateY(-3px)}
.sur-mesure-visuel{overflow:hidden}
.sur-mesure-visuel img{width:100%;height:100%;object-fit:cover;display:block;min-height:220px}
.sur-mesure-texte{padding:2.2rem 2.4rem;display:flex;flex-direction:column;justify-content:center;gap:.5rem}
.sur-mesure-texte h2{margin:0}
.sur-mesure-texte p{font-weight:300;color:#6b5f57;max-width:440px}
.sur-mesure-texte .btn{align-self:flex-start;margin-top:.6rem}
@media (max-width:700px){
  .sur-mesure-bandeau{grid-template-columns:1fr}
  .sur-mesure-visuel img{min-height:180px}
  .sur-mesure-texte{padding:1.6rem 1.4rem}
}
.logo{display:flex;align-items:baseline;gap:.4rem;text-decoration:none}
.logo img{height:32px;width:auto;display:block}
.logo b{font-weight:600;font-size:1.35rem;letter-spacing:.06em;color:var(--bordeaux)}
.logo span{font-family:'Dancing Script',cursive;font-size:1.5rem;color:var(--bordeaux)}
nav ul{display:flex;align-items:center;gap:1.15rem;list-style:none;flex-wrap:wrap}
nav ul a{
  text-decoration:none;color:var(--encre);
  font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;font-weight:400;
  padding-bottom:.15rem;border-bottom:2px solid transparent;
  transition:color .25s,border-color .25s;
}
nav ul a:hover{color:var(--bordeaux);border-color:var(--corail)}
.burger{display:none}
.lien-panier{position:relative;display:inline-flex;align-items:center;gap:.4rem}
.panier-badge{
  display:none;align-items:center;justify-content:center;
  min-width:1.25rem;height:1.25rem;border-radius:999px;
  background:var(--bordeaux);color:var(--creme);
  font-family:'Jost',sans-serif;font-size:.72rem;font-weight:500;
  padding:0 .3rem;
}
.lien-favoris{position:relative;display:inline-flex;align-items:center;gap:.4rem}
.favoris-badge{
  display:none;align-items:center;justify-content:center;
  min-width:1.25rem;height:1.25rem;border-radius:999px;
  background:var(--corail);color:#fff;
  font-family:'Jost',sans-serif;font-size:.72rem;font-weight:500;
  padding:0 .3rem;
}

/* ---------- SECTIONS GÉNÉRIQUES ---------- */
main{padding-top:5rem}
section{padding:5rem 6vw}
.etiquette{
  font-family:'Caveat',cursive;font-size:1.5rem;color:var(--corail);
  display:block;transform:rotate(-1.5deg);
}
h1,h2{
  font-family:'Dancing Script',cursive;font-weight:700;
  color:var(--bordeaux);margin:.2rem 0 1rem;
}
h2{font-size:clamp(2.2rem,4.5vw,3.4rem)}
h1{font-size:clamp(2.1rem,4vw,3rem)}
.filet{width:90px;height:14px;margin-bottom:1.4rem}

.cta-row{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.85rem 1.9rem;border-radius:999px;text-decoration:none;
  font-size:1rem;letter-spacing:.05em;border:none;cursor:pointer;
  font-family:'Jost',sans-serif;
  transition:transform .2s,box-shadow .2s,background .2s;
}
.btn:hover{transform:translateY(-2px)}
.btn-plein{background:var(--bordeaux);color:var(--creme);box-shadow:0 6px 18px rgba(125,47,58,.28)}
.btn-plein:hover{background:var(--bordeaux-fonce)}
.btn-ligne{border:1.5px solid var(--bordeaux);color:var(--bordeaux);background:transparent}
.btn-ligne:hover{background:rgba(125,47,58,.07)}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

.fil-ariane{
  padding:1.3rem 6vw 0;font-size:.88rem;color:#8a7c70;
}
.fil-ariane a{text-decoration:none;color:#8a7c70;transition:color .2s}
.fil-ariane a:hover{color:var(--bordeaux)}

/* ---------- PAGE PRODUIT ---------- */
.produit-hero{
  display:grid;grid-template-columns:minmax(280px,460px) 1fr;
  gap:3.5rem;max-width:1150px;margin:0 auto;align-items:start;
}
.produit-visuel{
  background:#fff;border-radius:4px;padding:1.2rem;
  box-shadow:0 12px 34px rgba(35,50,64,.12);
}
.produit-visuel img{width:100%;display:block;border-radius:2px}
.produit-infos .etiquette{margin-bottom:.2rem}
.produit-desc{font-weight:300;font-size:1.03rem;max-width:34rem;margin-bottom:1.8rem}

.format-selecteur{margin-bottom:1.6rem}
.format-label{
  display:block;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;
  color:#8a7c70;margin-bottom:.7rem;
}
.format-options{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.6rem}
.format-opt{
  border:1.5px solid rgba(125,47,58,.25);border-radius:10px;
  padding:.7rem 1.1rem;cursor:pointer;text-align:center;
  transition:border-color .2s,background .2s;background:#fff;
  min-width:6.4rem;position:relative;
}
.format-opt:hover{border-color:var(--bordeaux)}
.format-opt.actif{border-color:var(--bordeaux);background:rgba(125,47,58,.06)}
.format-opt .nom{display:block;font-weight:500;font-size:.98rem}
.format-opt .dim{display:block;font-size:.76rem;color:#8a7c70;margin-top:.15rem}
.format-opt .prix{display:block;font-size:.86rem;color:var(--bordeaux);margin-top:.3rem;font-weight:500}
.badge-coeur{
  position:absolute;top:-.7rem;left:50%;transform:translateX(-50%);
  background:var(--corail);color:#fff;font-size:.66rem;font-weight:500;
  padding:.2rem .55rem;border-radius:20px;white-space:nowrap;
  box-shadow:0 3px 8px rgba(232,117,106,.35);
}

.qty-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.6rem}
.qty-control{
  display:flex;align-items:center;gap:0;
  border:1.5px solid rgba(125,47,58,.25);border-radius:999px;overflow:hidden;
}
.qty-control button{
  width:2.4rem;height:2.4rem;border:none;background:#fff;cursor:pointer;
  font-size:1.15rem;color:var(--bordeaux);transition:background .2s;
}
.qty-control button:hover{background:rgba(125,47,58,.08)}
.qty-control span{width:2.4rem;text-align:center;font-weight:500}

.personnalisation-bloc{
  border:1.5px solid rgba(125,47,58,.2);border-radius:10px;
  padding:1.1rem 1.2rem 1.3rem;margin-bottom:1.6rem;background:rgba(125,47,58,.04);
}
.personnalisation-bloc .qty-row{margin-bottom:.9rem;flex-wrap:wrap}
#prenoms-champs{display:flex;flex-direction:column;gap:.7rem}
#prenoms-champs .champ{margin-bottom:0}
#prenoms-champs .champ input.prenom-invalide{border-color:var(--bordeaux)}

.produit-prix{
  font-family:'Dancing Script',cursive;font-weight:700;font-size:2.1rem;
  color:var(--bordeaux);margin-bottom:1.4rem;
}
.produit-note{font-size:.88rem;color:#8a7c70;margin-top:1rem;font-weight:300}

/* ---------- MOCKUPS "en situation" ---------- */
#mockups{background:var(--creme-2)}
.mockups-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2.2rem;max-width:1150px;margin:0 auto;
}
.mockup-mur{
  position:relative;aspect-ratio:4/5;border-radius:8px;overflow:hidden;
  box-shadow:0 12px 30px rgba(35,50,64,.14);
}
.mockup-mur .zone-haute{position:absolute;top:0;left:0;right:0;height:68%}
.mockup-mur .zone-basse{position:absolute;bottom:0;left:0;right:0;height:32%}
.mur-salon .zone-haute{background:#e4d6bd}
.mur-salon .zone-basse{background:#c9b18c}
.mur-chambre .zone-haute{background:#dfd2c6}
.mur-chambre .zone-basse{background:#b79c86}
.mur-entree .zone-haute{background:#e8dcc9}
.mur-entree .zone-basse{background:#a98f77}

.mockup-mur svg.meuble{position:absolute;opacity:.9}
.cadre-mur{
  position:absolute;top:14%;left:29%;width:42%;height:46%;
  background:#fff;padding:5%;
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.cadre-mur::before{
  content:"";position:absolute;inset:0;border:1px solid rgba(0,0,0,.08);
}
.cadre-mur img{width:100%;height:100%;object-fit:cover;display:block}
.mockup-legende{
  position:absolute;bottom:.7rem;left:0;right:0;text-align:center;
  font-family:'Caveat',cursive;font-size:1.15rem;color:#fff;
  text-shadow:0 1px 6px rgba(0,0,0,.4);
}
.mockup-photo{border-radius:8px;overflow:hidden;box-shadow:0 12px 30px rgba(35,50,64,.14);background:#fff}
.mockup-photo img{width:100%;height:auto;display:block}
.mockups-grille.photo-unique{grid-template-columns:1fr;max-width:820px}

/* ---------- PANIER ---------- */
.panier-table{max-width:900px;margin:0 auto 2.5rem}
.panier-ligne{
  display:grid;grid-template-columns:80px 1fr auto auto auto;
  gap:1.2rem;align-items:center;
  padding:1.2rem 0;border-bottom:1px solid rgba(125,47,58,.14);
}
.panier-ligne img{width:80px;height:80px;object-fit:cover;border-radius:6px;background:#fff}
.panier-ligne .infos strong{display:block;color:var(--bordeaux);font-weight:500}
.panier-ligne .infos span{font-size:.86rem;color:#8a7c70}
.panier-ligne .prix-ligne{font-weight:500;white-space:nowrap}
.panier-ligne .retirer{
  background:none;border:none;color:#8a7c70;cursor:pointer;font-size:.85rem;
  text-decoration:underline;white-space:nowrap;
}
.panier-ligne .retirer:hover{color:var(--bordeaux)}
.panier-qty{display:flex;align-items:center;gap:0;border:1px solid rgba(125,47,58,.25);border-radius:999px;overflow:hidden;width:fit-content}
.panier-qty button{width:1.9rem;height:1.9rem;border:none;background:#fff;cursor:pointer;color:var(--bordeaux)}
.panier-qty span{width:1.9rem;text-align:center;font-size:.92rem}

.panier-vide{text-align:center;padding:3rem 0;color:#8a7c70}
.panier-total{
  max-width:900px;margin:0 auto;display:flex;justify-content:flex-end;
  align-items:center;gap:1.2rem;padding-top:1rem;
}
.panier-total .label{font-size:1rem;color:#8a7c70}
.panier-total .montant{font-family:'Dancing Script',cursive;font-size:1.9rem;color:var(--bordeaux);font-weight:700}
.panier-actions{max-width:900px;margin:2.2rem auto 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}

/* ---------- COMMANDE / CHECKOUT ---------- */
.checkout-grille{
  display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;
  max-width:1100px;margin:0 auto;align-items:start;
}
.checkout-bloc{background:#fff;border-radius:10px;padding:2rem;box-shadow:0 10px 28px rgba(35,50,64,.08);margin-bottom:1.6rem}
.checkout-bloc h3{font-weight:500;font-size:1.1rem;color:var(--bordeaux);margin-bottom:1.2rem;letter-spacing:.02em}
.livraison-options{display:flex;flex-direction:column;gap:.9rem;margin-bottom:0}
.livraison-opt{
  display:flex;align-items:center;gap:.9rem;border:1.5px solid rgba(125,47,58,.22);
  border-radius:10px;padding:1rem 1.1rem;cursor:pointer;transition:border-color .2s,background .2s;
}
.livraison-opt:hover{border-color:var(--bordeaux)}
.livraison-opt.actif{border-color:var(--bordeaux);background:rgba(125,47,58,.05)}
.livraison-opt input{accent-color:var(--bordeaux);width:1.05rem;height:1.05rem}
.livraison-opt .detail strong{display:block;font-weight:500}
.livraison-opt .detail span{font-size:.86rem;color:#8a7c70}

.champ{margin-bottom:1.1rem}
.champ label{display:block;font-size:.85rem;color:#8a7c70;margin-bottom:.35rem}
.champ input,.champ select,.champ textarea{
  width:100%;padding:.7rem .9rem;border:1.5px solid rgba(125,47,58,.22);
  border-radius:8px;font-family:'Jost',sans-serif;font-size:.96rem;
  background:#fff;color:var(--encre);
}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--bordeaux)}
.champs-duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.mode-livraison-detail{display:none}
.mode-livraison-detail.actif{display:block}

.recap-ligne{display:flex;justify-content:space-between;font-size:.94rem;padding:.5rem 0;border-bottom:1px dashed rgba(125,47,58,.18)}
.recap-ligne.total{border-bottom:none;padding-top:.9rem;font-weight:500;font-size:1.1rem;color:var(--bordeaux)}
.recap-produits{margin-bottom:1rem;max-height:220px;overflow-y:auto}
.recap-produit{display:flex;justify-content:space-between;font-size:.88rem;padding:.4rem 0;color:#6b5f57}

.confirmation{
  max-width:640px;margin:0 auto;text-align:center;padding:3rem 0;
}
.confirmation .grand-script{
  font-family:'Dancing Script',cursive;font-size:clamp(2.2rem,5vw,3.4rem);
  color:var(--bordeaux);font-weight:700;margin-bottom:1rem;
}

/* ---------- À PROPOS ---------- */
#apropos{background:var(--creme-2)}
.apropos-grille{
  display:grid;grid-template-columns:minmax(260px,420px) 1fr;
  gap:4rem;align-items:center;max-width:1100px;margin:0 auto;
}
.portrait-cadre{
  position:relative;aspect-ratio:4/5;border-radius:4px;
  background:var(--sable);
  box-shadow:12px 12px 0 rgba(125,47,58,.15);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.portrait-cadre img{width:100%;height:100%;object-fit:cover;display:block}
.apropos-texte p{margin-bottom:1.1rem;font-weight:300;font-size:1.06rem;max-width:36rem}
.apropos-texte .signature{
  font-family:'Dancing Script',cursive;font-size:2rem;color:var(--bordeaux);
  margin-top:1.4rem;transform:rotate(-2deg);display:inline-block;
}
.commande-details{
  max-width:900px;margin:0 auto;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:2rem;text-align:center;margin-bottom:2.6rem;
}
.commande-details div span.hand{
  display:block;font-size:1.3rem;color:var(--corail);margin-bottom:.2rem;
}
.commande-details div strong{display:block;font-size:1.05rem;font-weight:500;color:var(--bordeaux)}

/* ---------- GRIBOUILLIS ---------- */
.doodle{position:absolute;pointer-events:none;opacity:.6}

/* apparition douce au scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* ---------- GALERIE ---------- */
.galerie-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
  gap:2.4rem;max-width:1150px;margin:0 auto;
}
.affiche{
  background:#fff;border-radius:4px;padding:1.1rem 1.1rem 1.4rem;
  box-shadow:0 10px 30px rgba(35,50,64,.10);
  transition:transform .3s,box-shadow .3s;
  text-align:center;position:relative;
}
.affiche:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 18px 40px rgba(35,50,64,.16)}
.affiche .visuel{aspect-ratio:3/4;border-radius:2px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;position:relative}
.affiche .visuel img{width:100%;height:100%;object-fit:contain;display:block}
.affiche h3{
  font-family:'Dancing Script',cursive;font-size:1.55rem;color:var(--bordeaux);
  margin-top:.9rem;font-weight:700;
}
.affiche p{font-size:.92rem;font-weight:300;color:#6b5f57}
.badge-une{
  position:absolute;top:-.7rem;left:50%;transform:translateX(-50%);
  background:var(--corail);color:#fff;font-family:'Caveat',cursive;
  font-size:1.05rem;font-weight:600;padding:.25rem 1rem;border-radius:999px;
  box-shadow:0 4px 10px rgba(232,117,106,.35);z-index:2;
}
.btn-favori{
  position:absolute;top:1.5rem;right:1.5rem;z-index:4;
  width:2.1rem;height:2.1rem;border-radius:50%;border:none;
  background:rgba(255,255,255,.9);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(35,50,64,.16);transition:transform .2s;
}
.btn-favori:hover{transform:scale(1.1)}
.btn-favori svg{width:1.15rem;height:1.15rem}
.btn-favori svg path{stroke:var(--bordeaux);stroke-width:1.8;fill:none;transition:fill .2s}
.btn-favori.actif svg path{fill:var(--corail);stroke:var(--corail)}
.affiche-une{grid-column:span 2}
.affiche-une .visuel{aspect-ratio:16/9}
.affiche-une h3{font-size:2.1rem}
.affiche-une p{font-size:1.02rem}
@media (max-width:700px){
  .affiche-une{grid-column:span 1}
  .affiche-une .visuel{aspect-ratio:3/4}
}
.affiche .visuel.carrousel img{
  position:absolute;top:0;left:0;width:100%;height:100%;
  object-fit:contain;opacity:0;transition:opacity .6s ease;pointer-events:none;
}
.affiche .visuel.carrousel img.actif{opacity:1}
.carrousel-dots{
  position:absolute;bottom:.6rem;left:50%;transform:translateX(-50%);
  display:flex;gap:.4rem;z-index:3;
}
.carrousel-dots span{
  width:7px;height:7px;border-radius:50%;background:rgba(125,47,58,.3);
  cursor:pointer;transition:background .25s,transform .25s;
}
.carrousel-dots span.actif{background:var(--bordeaux);transform:scale(1.35)}
.carrousel-fleche{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:2.1rem;height:2.1rem;border-radius:50%;border:none;
  background:rgba(255,255,255,.9);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(35,50,64,.16);
  opacity:0;transition:opacity .2s,transform .2s;
}
.affiche .visuel.carrousel:hover .carrousel-fleche{opacity:1}
.carrousel-fleche:hover{transform:translateY(-50%) scale(1.1)}
.carrousel-fleche svg{width:1rem;height:1rem}
.carrousel-fleche svg path{stroke:var(--bordeaux);stroke-width:2;fill:none}
.carrousel-fleche.precedent{left:.6rem}
.carrousel-fleche.suivant{right:.6rem}
@media (hover:none){
  .carrousel-fleche{opacity:1}
}

/* ---------- SUR-MESURE ---------- */
.sur-mesure-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2.4rem;max-width:850px;margin:0 auto;
}
.sur-mesure-carte{
  background:#fff;border-radius:4px;padding:1.1rem 1.1rem 1.4rem;
  box-shadow:0 10px 30px rgba(35,50,64,.10);text-align:center;
}
.sur-mesure-visuel{
  aspect-ratio:4/3;border-radius:2px;overflow:hidden;background:var(--creme-2);
  display:flex;align-items:center;justify-content:center;
}
.sur-mesure-visuel img{width:100%;height:100%;object-fit:cover;display:block}
.sur-mesure-visuel.placeholder{border:1.5px dashed rgba(125,47,58,.3)}
.sur-mesure-visuel.placeholder svg{width:70px;height:70px}
.sur-mesure-carte h3{
  font-family:'Dancing Script',cursive;font-size:1.55rem;color:var(--bordeaux);
  margin-top:.9rem;font-weight:700;
}
.sur-mesure-carte p{font-size:.92rem;font-weight:300;color:#6b5f57}

/* ---------- TARIFS PORTRAIT ---------- */
.tarifs-portrait{max-width:1000px;margin:3.4rem auto 0}
.tarifs-intro{text-align:center;max-width:620px;margin:0 auto 2.2rem}
.tarifs-intro p{font-weight:300;font-size:.96rem;color:#6b5f57}
.tarifs-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.8rem;
}
.tarif-carte{
  background:#fff;border-radius:10px;overflow:hidden;
  box-shadow:0 10px 30px rgba(35,50,64,.10);
  border-top:4px solid var(--bordeaux);
}
.tarif-carte.couleur{border-top-color:var(--corail)}
.tarif-visuel{aspect-ratio:4/3;overflow:hidden;background:var(--creme-2)}
.tarif-visuel img{width:100%;height:100%;object-fit:cover;display:block}
.tarif-corps{padding:1.5rem 1.6rem 1.8rem}
.tarif-entete{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.3rem}
.tarif-entete h3{font-family:'Dancing Script',cursive;font-size:1.5rem;color:var(--bordeaux);font-weight:700}
.tarif-carte.couleur .tarif-entete h3{color:var(--corail)}
.tarif-entete span{font-family:'Caveat',cursive;font-size:1.1rem;color:#6b5f57}
.tarif-liste{list-style:none;margin:1rem 0 0}
.tarif-liste li{
  display:flex;justify-content:space-between;align-items:center;
  padding:.55rem 0;border-bottom:1px dashed rgba(125,47,58,.15);
  font-size:.94rem;font-weight:300;
}
.tarif-liste li:last-child{border-bottom:none}
.tarif-liste li strong{font-weight:500;color:var(--encre)}
.tarif-liste li b{font-weight:600;color:var(--bordeaux);white-space:nowrap;margin-left:.6rem}
.tarif-carte.couleur .tarif-liste li b{color:var(--corail)}
.tarifs-notes{
  margin-top:2rem;background:var(--creme-2);border-radius:10px;
  padding:1.7rem 1.9rem;max-width:1000px;
}
.tarifs-notes ul{list-style:none;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.tarifs-notes li{font-size:.92rem;font-weight:300;display:flex;gap:.6rem;align-items:flex-start}
.tarifs-notes li .puce{font-family:'Caveat',cursive;font-size:1.25rem;color:var(--corail);line-height:1}
.tarifs-notes li strong{font-weight:500;color:var(--bordeaux)}
.tarifs-notes .preview-note{
  grid-column:1/-1;border-top:1px solid rgba(125,47,58,.15);padding-top:1rem;margin-top:.2rem;
  font-size:.94rem;
}

/* ---------- COMMENT COMMANDER ---------- */
.section-creme2{background:var(--creme-2)}
.commande-etapes{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:2rem;max-width:1100px;margin:0 auto 3.2rem;
}
.etape{
  position:relative;background:#fff;border-radius:10px;
  padding:2.2rem 1.6rem 1.7rem;text-align:center;
  box-shadow:0 10px 26px rgba(35,50,64,.08);
  transition:transform .3s,box-shadow .3s;
}
.etape:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(35,50,64,.13)}
.etape .chiffre{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.6rem;height:2.6rem;border-radius:50%;
  background:var(--bordeaux);color:var(--creme);
  font-family:'Dancing Script',cursive;font-weight:700;font-size:1.35rem;
  margin-bottom:.9rem;
}
.etape h3{font-weight:500;font-size:1.1rem;letter-spacing:.03em;margin-bottom:.6rem;color:var(--bordeaux)}
.etape p{font-size:.94rem;font-weight:300;color:#6b5f57}

/* ---------- CONTACT ---------- */
.contact-section{text-align:center;position:relative;padding-bottom:7rem}
.contact-section .grand-script{
  font-family:'Dancing Script',cursive;font-size:clamp(2.4rem,5vw,4rem);
  color:var(--bordeaux);font-weight:700;margin-bottom:1rem;
}
.contact-section p{max-width:32rem;margin:0 auto 2.2rem;font-weight:300;font-size:1.08rem}
.contact-section .cta-row{justify-content:center}

/* ---------- RÉSUMÉS ACCUEIL ---------- */
.resume-grille{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1.8rem;max-width:1100px;margin:0 auto 2.6rem;
}
.resume-carte{
  background:#fff;border-radius:4px;overflow:hidden;
  box-shadow:0 10px 30px rgba(35,50,64,.10);
  transition:transform .3s,box-shadow .3s;text-decoration:none;color:inherit;
  display:block;
}
.resume-carte:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(35,50,64,.16)}
.resume-visuel{aspect-ratio:4/3;overflow:hidden;background:var(--creme-2)}
.resume-visuel img{width:100%;height:100%;object-fit:cover;display:block}
.resume-corps{padding:1.2rem 1.3rem 1.5rem}
.resume-corps h3{
  font-family:'Dancing Script',cursive;font-size:1.5rem;color:var(--bordeaux);
  font-weight:700;margin-bottom:.35rem;
}
.resume-corps p{font-size:.92rem;font-weight:300;color:#6b5f57}
.resume-corps .voir-plus{
  display:inline-block;margin-top:.8rem;font-family:'Caveat',cursive;
  font-size:1.1rem;color:var(--corail);
}

/* ---------- BLOC DEVIS / ENVOI DE PHOTOS ---------- */
.devis-bloc{
  max-width:640px;margin:0 auto;text-align:center;background:var(--creme-2);
  border-radius:10px;padding:2.6rem 2rem;
}
.devis-bloc ul{list-style:none;text-align:left;max-width:26rem;margin:0 auto 1.6rem;display:grid;gap:.5rem}
.devis-bloc ul li{font-size:.92rem;font-weight:300;display:flex;gap:.55rem}
.devis-bloc ul li .puce{font-family:'Caveat',cursive;font-size:1.2rem;color:var(--corail);line-height:1}

/* ---------- ENCART D'INFO GÉNÉRIQUE ---------- */
.encart-info{
  background:var(--creme-2);border-radius:10px;
  padding:1.5rem 1.8rem;max-width:1000px;margin:2.4rem auto 0;text-align:center;
}
.encart-info p{font-weight:300;font-size:.92rem;color:#6b5f57;margin:0}
.encart-info strong{color:var(--bordeaux);font-weight:500}

/* ---------- BANDE CONTACT (pied de page) ---------- */
.contact-footer{
  text-align:center;background:var(--creme-2);
  padding:3.2rem 6vw;border-top:1px solid rgba(125,47,58,.12);
}
.contact-footer .grand-script{
  font-family:'Dancing Script',cursive;font-size:clamp(1.9rem,4vw,2.6rem);
  color:var(--bordeaux);font-weight:700;margin:.3rem 0 .8rem;
}
.contact-footer p{max-width:30rem;margin:0 auto 1.4rem;font-weight:300;font-size:.98rem}
.contact-footer .cta-row{justify-content:center}

/* ---------- ILLUSTRATIONS PERSONNALISÉES — CARTES INTERACTIVES ---------- */
.perso-carte{
  display:grid;grid-template-columns:minmax(260px,380px) 1fr;
  gap:2.4rem;background:#fff;border-radius:10px;overflow:hidden;
  box-shadow:0 10px 30px rgba(35,50,64,.10);padding:1.7rem;
  max-width:1000px;margin:0 auto 2.6rem;align-items:start;
}
.perso-visuel{
  position:relative;aspect-ratio:4/3;border-radius:6px;overflow:hidden;
  background:var(--creme-2);
}
.perso-visuel img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .7s ease;
}
.perso-visuel img.actif{opacity:1}
.perso-corps h3{
  font-family:'Dancing Script',cursive;color:var(--bordeaux);
  font-size:1.8rem;font-weight:700;margin-bottom:.4rem;
}
.perso-corps .desc{font-weight:300;font-size:.96rem;color:#6b5f57;margin-bottom:1.1rem}
.perso-exemple{
  background:var(--creme-2);border-radius:8px;padding:.85rem 1.1rem;
  font-size:.88rem;font-weight:300;color:#6b5f57;margin-bottom:1.3rem;
  display:flex;gap:.55rem;align-items:flex-start;
}
.perso-exemple .puce{font-family:'Caveat',cursive;font-size:1.2rem;color:var(--corail);line-height:1}
.style-tabs{display:flex;gap:.6rem;margin-bottom:1.3rem}
.style-tab{
  border:1.5px solid rgba(125,47,58,.25);border-radius:999px;
  padding:.55rem 1.3rem;background:#fff;cursor:pointer;
  font-family:'Jost',sans-serif;font-size:.9rem;transition:border-color .2s,background .2s,color .2s;
}
.style-tab:hover{border-color:var(--bordeaux)}
.style-tab.actif{background:var(--bordeaux);color:#fff;border-color:var(--bordeaux)}
.perso-supplements{font-size:.85rem;color:#8a7c70;font-weight:300;margin-top:.4rem}
.perso-delai{
  margin-top:1.3rem;padding-top:1.1rem;border-top:1px dashed rgba(125,47,58,.18);
  font-size:.86rem;font-weight:300;color:#6b5f57;
}
.perso-delai strong{color:var(--bordeaux);font-weight:500}
@media (max-width:800px){
  .perso-carte{grid-template-columns:1fr;padding:1.3rem}
}

/* ---------- FOOTER ---------- */
footer{
  background:var(--creme-2);border-top:1px solid rgba(125,47,58,.12);
  padding:2rem 6vw;display:flex;flex-wrap:wrap;gap:1rem;
  align-items:center;justify-content:space-between;
  font-size:.9rem;color:#7a6d63;
}
footer .logo b{font-size:1.05rem}
footer .logo span{font-size:1.15rem}
footer .logo img{height:32px}
footer a{color:var(--bordeaux);text-decoration:none}
footer .footer-legal{font-size:.78rem;opacity:.75;margin-top:.4rem}
footer .footer-legal a{text-decoration:underline}
footer a:hover{text-decoration:underline}

/* ---------- RESPONSIVE ---------- */
@media (max-width:840px){
  nav ul{display:none}
  .burger{
    display:block;background:none;border:none;cursor:pointer;
    font-family:'Caveat',cursive;font-size:1.3rem;color:var(--bordeaux);
  }
  nav.ouvert ul{
    display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;
    position:absolute;top:100%;left:0;right:0;
    background:var(--creme);padding:1.4rem 6vw 1.8rem;
    border-bottom:1px solid rgba(125,47,58,.15);
  }
  .produit-hero{grid-template-columns:1fr;gap:2rem}
  .checkout-grille{grid-template-columns:1fr}
  .panier-ligne{grid-template-columns:60px 1fr;grid-template-areas:"img infos" "img qty" "img actions";row-gap:.5rem}
  .panier-ligne img{grid-area:img}
  .panier-ligne .infos{grid-area:infos}
  .panier-ligne .panier-qty{grid-area:qty}
  .panier-ligne .prix-retirer{grid-area:actions;display:flex;justify-content:space-between;align-items:center}
  .champs-duo{grid-template-columns:1fr}
  .apropos-grille{grid-template-columns:1fr;gap:2.5rem}
  .portrait-cadre{max-width:340px;margin:0 auto}
}

/* ---------- avis clients ---------- */
.note-resume{align-items:center;gap:.5rem;margin:.4rem 0 1rem;font-size:.92rem;color:#8a7c70}
.note-resume .etoiles{color:var(--corail);letter-spacing:1px;font-size:1.05rem}
#avis-clients{padding:1rem 6vw 4rem}
.avis-conteneur{display:grid;grid-template-columns:1.3fr 1fr;gap:2.4rem;max-width:1000px;margin:0 auto;align-items:start}
@media(max-width:800px){.avis-conteneur{grid-template-columns:1fr}}
.avis-carte{background:#fff;border-radius:10px;padding:1.1rem 1.3rem;margin-bottom:.9rem;box-shadow:0 6px 18px rgba(35,50,64,.06)}
.avis-entete{display:flex;align-items:center;gap:.7rem;margin-bottom:.4rem}
.avis-entete .etoiles{color:var(--corail);letter-spacing:1px}
.avis-carte p{font-size:.92rem;color:var(--encre);opacity:.85}
.avis-formulaire-bloc{background:var(--creme-2);border-radius:10px;padding:1.4rem}
.avis-formulaire-bloc h3{margin-bottom:1rem}
.etoiles-choix{font-size:1.8rem;letter-spacing:.2rem;cursor:pointer;color:#d8cdbf}
.etoiles-choix span{transition:color .15s}
.etoiles-choix span.actif{color:var(--corail)}

/* ---------- commande illustrations personnalisées ---------- */
.bouton-commander-perso{width:100%;justify-content:center;margin-top:1rem}
.recap-perso{
  display:flex;justify-content:space-between;align-items:center;
  background:#fff;border-radius:10px;padding:1rem 1.3rem;margin:0 auto 1.6rem;
  max-width:520px;box-shadow:0 6px 18px rgba(35,50,64,.08);
  border:1.5px solid var(--bordeaux);
}
.recap-perso span{color:var(--bordeaux);font-weight:600}
