/* ============================================================
   SEO LOCAL - Feuille de style dédiée aux pages villes
   Complète index.css / menu2.css / footer.css (n'écrase rien)
   Police de titres : Playfair Display (élégant, pages adultes/mariage/entreprise)
   Préfixe .sl- pour éviter tout conflit avec l'existant
   ============================================================ */

/* ---- HERO LOCAL ---- */
.sl-hero { text-align: center; padding: 30px 20px 10px; }
.sl-hero h1 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 50px;
  line-height: 1.1;
  color: #000;
  margin-bottom: 16px;
}
.sl-hero h1 span { color: #d0021b; }
.sl-sub { font-size: 21px; line-height: 1.5; max-width: 760px; margin: 0 auto 22px; color: #222; }
.sl-phone { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 30px; color: #d0021b; margin-bottom: 22px; }
.sl-phone a { color: #d0021b; }
.sl-cta-row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ---- SECTIONS GÉNÉRIQUES ---- */
.sl-section { padding: 34px 0; }
.sl-section h2 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: 33px;
  text-align: center;
  color: #000;
  margin-bottom: 10px;
}
.sl-section h2 span { color: #d0021b; }
.sl-lead { font-size: 19px; line-height: 1.7; max-width: 820px; margin: 0 auto 18px; text-align: center; color: #333; }
.sl-text { font-size: 18px; line-height: 1.7; color: #333; }
.sl-text p { margin-bottom: 14px; }

/* ---- CARTES PRESTATIONS ---- */
.sl-card-label { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 23px; margin: 14px 0 6px; }
.sl-card-label span { color: #d0021b; }
.sl-card-desc { font-size: 15px; line-height: 1.5; color: #555; margin-bottom: 16px; }

/* ---- BANDEAU COMMUNES ---- */
.sl-zones { background: #faf7f7; border: 1px solid #f0e3e3; border-radius: 16px; padding: 30px; max-width: 900px; margin: 0 auto; }
.sl-zones h3 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 25px; color: #d0021b; margin-bottom: 12px; text-align: center; }
.sl-communes { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 16px; }
.sl-communes span { background: #fff; border: 1px solid #e6d2d2; border-radius: 30px; padding: 6px 14px; font-size: 14px; color: #444; }

/* ---- ATOUTS ---- */
.sl-atouts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 960px; margin: 20px auto 0; }
.sl-atout { text-align: center; padding: 20px; }
.sl-atout .sl-ico { font-size: 34px; margin-bottom: 8px; }
.sl-atout h4 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 20px; margin-bottom: 6px; }
.sl-atout p { font-size: 15px; color: #555; line-height: 1.5; }

/* ---- CITATION / AVIS MIS EN AVANT ---- */
.sl-quote { max-width: 760px; margin: 0 auto; background: #faf7f7; border-left: 4px solid #d0021b; border-radius: 8px; padding: 24px 28px; }
.sl-quote p { font-size: 18px; line-height: 1.6; color: #333; font-style: italic; margin-bottom: 10px; }
.sl-quote .sl-quote-author { font-weight: 700; color: #000; font-style: normal; font-size: 15px; }

/* ---- FAQ ---- */
.sl-faq { max-width: 820px; margin: 0 auto; }
.sl-faq-item { border-bottom: 1px solid #eee; padding: 18px 0; }
.sl-faq-item h4 { font-size: 19px; color: #000; margin-bottom: 8px; }
.sl-faq-item h4 span { color: #d0021b; font-weight: 700; }
.sl-faq-item p { font-size: 16px; line-height: 1.6; color: #444; }

/* ---- BANDEAU CTA FINAL ---- */
.sl-cta-band { background: #1a0f35; border-radius: 20px; text-align: center; padding: 40px 24px; max-width: 960px; margin: 10px auto 0; color: #fff; }
.sl-cta-band h2 { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 31px; color: #fff; margin-bottom: 10px; }
.sl-cta-band p { font-size: 18px; color: rgba(255,255,255,.85); margin-bottom: 22px; }
.sl-cta-band .sl-phone { color: #ffd000; }
.sl-cta-band .sl-phone a { color: #ffd000; }

/* ---- RESPONSIVE ---- */
@media only screen and (max-width: 800px) {
  .sl-hero h1 { font-size: 38px; }
  .sl-sub { font-size: 19px; }
  .sl-phone { font-size: 26px; }
  .sl-section h2 { font-size: 27px; }
  .sl-atouts { grid-template-columns: 1fr; }
  .sl-zones { padding: 22px 16px; }
}

/* ---- FAQ ACCORDÉON ---- */
.sl-faq-item { border-bottom: 1px solid #eee; padding: 0; cursor: pointer; }
.sl-faq-item h4 {
  font-size: 18px; color: #000; padding: 18px 40px 18px 0;
  position: relative; margin: 0; user-select: none;
}
.sl-faq-item h4 span.arrow {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  color: #d0021b; font-size: 20px; transition: transform 0.3s ease;
  font-weight: 400;
}
.sl-faq-item.open h4 span.arrow { transform: translateY(-50%) rotate(180deg); }
.sl-faq-answer {
  max-height: 0; overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
  padding: 0 0 0;
}
.sl-faq-item.open .sl-faq-answer { max-height: 300px; padding: 0 0 16px; }
.sl-faq-answer p { font-size: 16px; line-height: 1.6; color: #444; margin: 0; }
