:root{
  --sauge:#A3B18A; --sauge-fonce:#7D8A6A; --beige:#F9F5ED; --beige-clair:#F5F0E6;
  --blanc:#FFFFFF; --rose:#F2D1C9; --brun-terre:#6B4226; --brun-fonce:#3d2b1f;
  --font-script:'Dancing Script',cursive; --font-serif:'Cormorant Garamond',serif; --font-body:'Lato',sans-serif;
}

/* ============================================================
   CASSE-SIDEBAR : chaque section sp- ignore le padding du parent
   et se recentre elle-même jusqu'à 1120px de contenu utile.
   ============================================================ */
.sp-hero, .sp-probleme, .sp-artiste, .sp-diff-wrap,
.sp-process-wrap, .sp-portfolio-wrap, .sp-cta, .sp-offres-formats{
  width:100vw;
  position:relative;
  left:50%;
  margin-left:-50vw;
  box-sizing:border-box;
  padding-left:max(32px, calc((100vw - 1120px) / 2));
  padding-right:max(32px, calc((100vw - 1120px) / 2));
}

.sp-eyebrow{ font-family:var(--font-script); color:var(--brun-terre); }
.sp-title-italic{ font-family:var(--font-serif); font-style:italic; font-weight:500; color:var(--sauge-fonce); font-size:2.2rem; }
.sp-signature{ font-family:var(--font-script); font-size:1.9rem; color:var(--brun-terre); margin-top:20px; }
.sp-eyebrow, .sp-signature, .sp-text-quote, .sp-diff-num, .sp-step-num, .sp-probleme-punch{
   font-size: 1.65rem !important; letter-spacing: .01em;  
}
/* Boutons */
.sp-btn .wp-block-button__link{
  background:var(--sauge); color:var(--blanc); border-radius:999px; padding:16px 34px;
  font-family:var(--font-body); font-weight:700; font-size:.95rem; box-shadow:0 8px 24px -8px rgba(125,138,106,.55);
}
.sp-btn .wp-block-button__link:hover{ background:var(--sauge-fonce); }
.sp-btn-ghost .wp-block-button__link{ background:transparent !important; border:1.5px solid var(--sauge-fonce); color:var(--sauge-fonce) !important; }
.sp-btn-ghost .wp-block-button__link:hover{ background:var(--sauge-fonce) !important; color:var(--blanc) !important; }
.sp-btn-light .wp-block-button__link{ background:var(--rose) !important; color:var(--brun-fonce) !important; }
.sp-btn-light .wp-block-button__link:hover{ background:var(--beige) !important; color:var(--brun-fonce) !important; }

/* Hero — avec taches d'aquarelle + vague en bas */
.sp-hero{
  overflow:hidden;
  background-color:var(--blanc);
  background-image:
    radial-gradient(circle at 88% -10%, rgba(163,177,138,.5) 0%, rgba(163,177,138,0) 60%),
    radial-gradient(circle at -8% 105%, rgba(242,209,201,.45) 0%, rgba(242,209,201,0) 60%);
  padding-top:100px; padding-bottom:130px;
  text-align:center;
}
.sp-hero::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:90px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 90' preserveAspectRatio='none'><path d='M0,40 C150,90 350,0 600,45 C850,90 1050,10 1200,50 L1200,90 L0,90 Z' fill='%23F5F0E6'/></svg>");
  background-size:100% 100%;
  pointer-events:none;
}
.sp-hero-title{ font-family:var(--font-serif); font-style:italic; font-size:clamp(2.2rem,5vw,3.4rem); color:var(--sauge-fonce); margin:16px 0 24px; position:relative; z-index:1; }
.sp-hero-lead{ font-family:var(--font-body); font-weight:300; font-size:1.15rem; color:var(--brun-fonce); max-width:540px; margin:0 auto 34px; position:relative; z-index:1; }
.sp-hero-lead strong{ font-weight:700; color:var(--brun-terre); }
.sp-hero .wp-block-buttons{ position:relative; z-index:1; }

/* Problème — avec vague en bas */
.sp-probleme{
  overflow:hidden;
  background:var(--beige-clair); padding-top:90px; padding-bottom:130px; text-align:center;
}
.sp-probleme::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:90px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 90' preserveAspectRatio='none'><path d='M0,50 C200,10 400,85 650,40 C900,0 1050,70 1200,35 L1200,90 L0,90 Z' fill='%23FFFFFF'/></svg>");
  background-size:100% 100%;
  pointer-events:none;
}
.sp-probleme-text{ font-family:var(--font-serif); font-style:italic; font-size:1.4rem; color:var(--brun-fonce); margin-bottom:24px; max-width:720px; margin-left:auto; margin-right:auto; position:relative; z-index:1; }
.sp-probleme-punch{ font-family:var(--font-script); font-size:2rem; color:var(--sauge-fonce); position:relative; z-index:1; }

/* Artiste */
.sp-artiste{ background:var(--blanc); padding-top:100px; padding-bottom:100px; align-items:center; }
.sp-artiste-photo{
  border-radius:6px 120px 6px 120px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(107,66,38,.28);
  aspect-ratio:4/5; min-height:320px;
  background:
    radial-gradient(circle at 30% 20%, rgba(163,177,138,.35), transparent 55%),
    radial-gradient(circle at 75% 75%, rgba(242,209,201,.5), transparent 55%),
    linear-gradient(135deg, #eee7d8, #e4dcc8);
}
.sp-artiste-photo img{ width:100%; height:100%; object-fit:cover; }

/* Différenciation / cartes à 3 */
.sp-diff-wrap{ background:var(--beige-clair); padding-top:100px; padding-bottom:100px; }
.sp-diff-wrap.on-white{ background:var(--blanc); }
.sp-diff-grid{ margin-top:50px; gap:30px; }
.sp-diff-card{ background:var(--blanc); border-radius:4px 40px 4px 40px; padding:36px 28px; box-shadow:0 20px 45px -25px rgba(107,66,38,.25); border-top:3px solid var(--rose); }
.sp-diff-num{ font-family:var(--font-script); font-size:2rem; color:var(--sauge); }
.sp-diff-card h3{ font-family:var(--font-serif); font-style:italic; color:var(--brun-terre); font-size:1.3rem; }

/* Processus — avec ligne pointillée entre les étapes */
.sp-process-wrap{ background:var(--blanc); padding-top:100px; padding-bottom:100px; }
.sp-process-grid{ position:relative; margin-top:56px; gap:24px; }
.sp-process-grid::before{
  content:''; position:absolute; top:30px; left:12%; right:12%; height:1px;
  background-image:linear-gradient(90deg, var(--sauge) 0 10px, transparent 10px 20px);
  background-size:20px 1px; background-repeat:repeat-x;
  z-index:0;
}
.sp-step{ text-align:center; position:relative; z-index:1; }
.sp-step-num{
  width:60px; height:60px; margin:0 auto 16px; border-radius:50%; background:var(--beige);
  border:2px solid var(--sauge); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-script); font-size:1.5rem; color:var(--sauge-fonce);
}
.sp-step h3{ font-family:var(--font-serif); font-style:italic; color:var(--brun-terre); font-size:1.1rem; }

/* Portfolio */
.sp-portfolio-wrap{ background:var(--beige-clair); padding-top:100px; padding-bottom:100px; text-align:center; }
.sp-portfolio-wrap.on-white{ background:var(--blanc); }
.sp-portfolio-grid{ margin:50px 0 40px; gap:24px; text-align:left; }
.sp-portfolio-thumb{
  border-radius:4px 60px 4px 60px; overflow:hidden; box-shadow:0 22px 44px -22px rgba(107,66,38,.3);
  aspect-ratio:4/5; min-height:280px;
  background:linear-gradient(150deg,#e7e0cd,#d8c9a3);
}
.sp-portfolio-thumb img{ width:100%; height:100%; object-fit:cover; }
.sp-portfolio-grid > *:nth-child(1) .sp-portfolio-thumb{ background:linear-gradient(150deg,#dfe7d3,#c9d4b7); }
.sp-portfolio-grid > *:nth-child(2) .sp-portfolio-thumb{ background:linear-gradient(150deg,#f6e2dd,#f2d1c9); }
.sp-portfolio-grid > *:nth-child(3) .sp-portfolio-thumb{ background:linear-gradient(150deg,#ece2c8,#d8c9a3); }
.sp-portfolio-caption{ font-family:var(--font-serif); font-style:italic; color:var(--brun-terre); margin-top:12px; }

/* CTA final — avec tache d'aquarelle */
.sp-cta{
  overflow:hidden;
  background-color:var(--sauge-fonce);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><path fill='%23F9F5ED' fill-opacity='0.13' d='M45.8,-58.6C58.6,-49.7,68,-34.9,71.6,-18.7C75.2,-2.4,73,15.4,64.6,29.6C56.2,43.8,41.6,54.5,25.5,60.9C9.4,67.3,-8.2,69.5,-24.4,64.9C-40.6,60.3,-55.4,48.9,-63.8,33.9C-72.2,18.9,-74.2,0.3,-69.9,-16.1C-65.6,-32.5,-55,-46.7,-41.4,-55.8C-27.8,-64.9,-13.9,-68.9,1.6,-71.1C17.1,-73.3,34.2,-73.7,45.8,-58.6Z' transform='translate(100 100)'/></svg>");
  background-repeat:no-repeat;
  background-position:-40px -60px;
  background-size:380px 380px;
  padding-top:110px; padding-bottom:110px; text-align:center;
}
.sp-cta .sp-title-italic{ color:var(--beige); }
.sp-cta-lead{ font-family:var(--font-body); font-weight:300; color:var(--rose); font-size:1.1rem; margin:18px 0 30px; }
.sp-cta-micro{ color:rgba(249,245,237,.7); font-size:.85rem; }

/* ---------- Bloc générique : texte + citation ---------- */
.sp-text-block{
  width:100vw; position:relative; left:50%; margin-left:-50vw; box-sizing:border-box;
  padding:90px max(32px, calc((100vw - 1120px) / 2));
  background:var(--beige-clair); text-align:center;
}
.sp-text-block.on-white{ background:var(--blanc); }
.sp-text-block p{ font-size:1.05rem; text-align:left; max-width:680px; margin:0 auto 18px; color:var(--brun-fonce); }
.sp-text-block p:last-of-type{ margin-bottom:0; }
.sp-text-quote{
  font-family:var(--font-script) !important; font-size:1.6rem; color:var(--sauge-fonce) !important;
  max-width:600px; margin:30px auto 0 !important; text-align:center !important;
}

/* ---------- Vagues prêtes à l'emploi ---------- */
.sp-wave-top-blanc, .sp-wave-top-beige, .sp-wave-top-sauge{
  width:100vw; position:relative; left:50%; margin-left:-50vw;
  height:80px; background-repeat:no-repeat; background-size:100% 100%; pointer-events:none;
}
.sp-wave-top-blanc{ background-color:var(--blanc); }
.sp-wave-top-beige{ background-color:var(--beige-clair); }
.sp-wave-top-sauge{ background-color:var(--sauge-fonce); }

.sp-wave-shape-blanc{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 90' preserveAspectRatio='none'><path d='M0,40 C150,90 350,0 600,45 C850,90 1050,10 1200,50 L1200,90 L0,90 Z' fill='%23FFFFFF'/></svg>"); }
.sp-wave-shape-beige{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 90' preserveAspectRatio='none'><path d='M0,40 C150,90 350,0 600,45 C850,90 1050,10 1200,50 L1200,90 L0,90 Z' fill='%23F5F0E6'/></svg>"); }
.sp-wave-shape-sauge{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 90' preserveAspectRatio='none'><path d='M0,40 C150,90 350,0 600,45 C850,90 1050,10 1200,50 L1200,90 L0,90 Z' fill='%237D8A6A'/></svg>"); }


/* ---------- Formats de prix ---------- */
.sp-offres-formats{ padding-top:20px; background-color:var(--beige-clair); }
.sp-offres-grid{ gap:28px; margin:44px 0 50px; }
.sp-offer-card{ background:var(--blanc); border-radius:4px 40px 4px 40px; padding:38px 28px !important; box-shadow:0 20px 45px -25px rgba(107,66,38,.25); text-align:center; position:relative; }
.sp-offer-card.sp-offer-featured{ border:2px solid var(--sauge); }
.sp-offer-badge{ display:inline-block; background:var(--brun-terre) !important; color:var(--beige) !important; font-size:.72rem !important; font-weight:700; padding:6px 16px; border-radius:999px; margin-bottom:14px !important;
  position:absolute !important;
  top:-14px !important;
  left:50% !important;
  transform:translateX(-50%);
  margin-bottom:0 !important;
  white-space:nowrap;
}
.sp-offer-card h3{ font-family:var(--font-serif); font-style:italic; font-size:1.35rem; color:var(--brun-fonce); }
.sp-offer-accroche{ font-family:var(--font-serif) !important; font-style:italic; color:var(--brun-terre) !important; }
.sp-offer-desc{ font-size:.9rem !important; }
.sp-offer-prix{ font-family:var(--font-serif) !important; font-size:1.7rem !important; color:var(--sauge-fonce) !important; font-weight:600; }

.sp-options-block{ margin:0 auto 50px !important; text-align:center; }
.sp-options-block ul{ list-style:none; padding:0; }
.sp-options-block li{ padding:10px 0; border-bottom:1px solid rgba(125,138,106,.2); font-size:.95rem; }

.sp-bundle-card{ background:var(--rose) !important; border-radius:4px 50px 4px 50px !important; padding:42px 38px !important; }
.sp-bundle-card h3{ font-family:var(--font-serif); font-style:italic; color:var(--brun-terre); }
.sp-bundle-barre{ display:block; font-family:var(--font-body); font-size:.82rem; font-weight:400; margin-top:6px; }

/* ---------- FAQ (nécessite <details class="sp-faq-item"><summary class="sp-faq-question">) ---------- */
.sp-faq-item{ border-bottom:1px solid rgba(125,138,106,.25); padding:18px 0; max-width:720px; margin:0 auto; }
.sp-faq-question{ cursor:pointer; font-family:var(--font-serif); font-style:italic; font-size:1.1rem; color:var(--brun-terre); list-style:none; }
.sp-faq-question::-webkit-details-marker{ display:none; }
.sp-faq-question::before{ content:'+ '; color:var(--sauge-fonce); font-weight:700; }
.sp-faq-item[open] .sp-faq-question::before{ content:'– '; }
.sp-faq-reponse{ margin-top:10px; font-size:.95rem; }

@media (max-width:600px){
  .sp-hero, .sp-probleme, .sp-artiste, .sp-diff-wrap,
  .sp-process-wrap, .sp-portfolio-wrap, .sp-cta, .sp-offres-formats{
    padding-left:20px; padding-right:20px;
  }
}

.sp-hero, .sp-probleme, .sp-artiste, .sp-diff-wrap,
.sp-process-wrap, .sp-portfolio-wrap, .sp-cta, .sp-offres-formats,
.sp-text-block{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}