
/* ==========================================================================
   FP AVOCATS &#8212; Feuille de style du site
   Conforme &#224; la charte d'identit&#233; visuelle valid&#233;e le 28/08/2026.

   &#192; coller int&#233;gralement dans l'h&#233;bergeur :
   Site &#8594; Conception (Design) &#8594; Personnaliser &#8594; CSS personnalis&#233; (Custom CSS)
   L'&#233;diteur CSS est disponible sur tous les abonnements.
   Aucun JavaScript, aucune iframe : compatible plan Basic / Personal.
   Aucune d&#233;pendance externe autre que les Google Fonts ci-dessous.
   ========================================================================== */



/* --------------------------------------------------------------------------
   1. Variables &#8212; palette et typographies de la charte
   -------------------------------------------------------------------------- */
.fp {
  --fp-black:      #000000;   /* texte, filets, boutons, fonds n&#233;gatifs */
  --fp-ink:        #1A1A1A;   /* nom de marque, titres */
  --fp-text:       #1A1A1A;
  --fp-muted:      #555555;   /* descripteurs, textes secondaires */
  --fp-accent:     #7A2E3B;   /* bordeaux &#8212; volute, survols, rep&#232;res */
  --fp-accent-lt:  #D4A9AE;   /* bordeaux p&#226;le &#8212; sur fond noir */
  --fp-paper:      #EAEAEE;   /* gris perle &#8212; fond de page */
  --fp-blush:      #F3E6E9;   /* rose p&#226;le, d&#233;riv&#233; du bordeaux &#8212; bandes claires */
  --fp-blush-dp:   #EBD8DC;   /* rose p&#226;le soutenu &#8212; filets, encadr&#233;s */
  --fp-wine:       #6B2733;   /* bordeaux profond &#8212; survols de liens */
  --fp-noir-vin:   #3D1319;   /* bordeaux presque noir &#8212; bandes d'appel */
  --fp-white:      #FFFFFF;
  --fp-line:       rgba(0,0,0,.16);
  --fp-line-firm:  #000000;

  --fp-display: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --fp-sans:    'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --fp-seal:    'Cormorant Garamond', Georgia, serif;   /* r&#233;serv&#233; au &#171; FP &#187; du sceau */

  --fp-max: 1120px;
  --fp-pad: 24px;
}

/* --------------------------------------------------------------------------
   2. R&#233;glages l'h&#233;bergeur
   -------------------------------------------------------------------------- */
body { overflow-x: hidden; }
.sqs-block-code:has(.fp) { padding: 0 !important; }
.fp * { box-sizing: border-box; }

/* --------------------------------------------------------------------------
   3. Base
   -------------------------------------------------------------------------- */
.fp {
  font-family: var(--fp-sans);
  color: var(--fp-text);
  font-size: 16px;
  line-height: 1.62;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

.fp p { margin: 0 0 .95em; }
.fp p:last-child { margin-bottom: 0; }

.fp a {
  color: var(--fp-accent);
  text-decoration: none;
  border-bottom: 1px solid var(--fp-accent-lt);
  transition: color .2s ease, border-color .2s ease;
}
.fp a:hover { color: var(--fp-wine); border-bottom-color: var(--fp-wine); }
.fp a:focus-visible { outline: 1px solid var(--fp-accent); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   4. Bandes pleine largeur
   -------------------------------------------------------------------------- */
.fp-band {
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  max-width: 100vw;
  padding: 60px var(--fp-pad);
  background: var(--fp-white);
}
.fp-band--tight { padding-top: 42px; padding-bottom: 42px; }
.fp-band--paper,
.fp-band--cream  { background: var(--fp-paper); }
.fp-band--cream2 { background: var(--fp-white); border-top: 1px solid var(--fp-line); }
.fp-band--blush  { background: var(--fp-blush); }
.fp-band--white  { background: var(--fp-white); }
.fp-band--ink    { background: var(--fp-black); color: rgba(255,255,255,.80); }

/* Bande d'appel : bordeaux presque noir. Assez sombre pour se lire comme un
   noir chaud plut&#244;t que comme du rouge. Le texte y passe en blanc et le bouton
   noir de la charte y devient invisible : il prend un contour bordeaux p&#226;le.
   S'&#233;crit seule : class="fp-band fp-band--wine" */
.fp-band--wine {
  background: var(--fp-noir-vin);
  color: rgba(255,255,255,.82);
  border-top: 1px solid rgba(212,169,174,.22);
}
.fp-band--wine .fp-h1,
.fp-band--wine .fp-h2,
.fp-band--wine .fp-h3 { color: #fff; }
.fp-band--wine .fp-eyebrow,
.fp-band--wine .fp-h4 { color: var(--fp-accent-lt); }
.fp-band--wine .fp-lede { color: rgba(255,255,255,.82); }
.fp-band--wine .fp-note { color: rgba(255,255,255,.62); }
.fp-band--wine .fp-small { color: rgba(255,255,255,.74); }
.fp-band--wine .fp-value p,
.fp-band--wine .fp-card p,
.fp-band--wine .fp-list li { color: rgba(255,255,255,.84); }
.fp-band--wine .fp-list li::before { background: var(--fp-accent-lt); }
.fp-band--wine a { color: #fff; border-bottom-color: rgba(212,169,174,.55); }
.fp-band--wine a:hover { color: var(--fp-accent-lt); border-bottom-color: var(--fp-accent-lt); }
.fp-band--wine .fp-rule { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2256%22%20height%3D%2216%22%20viewBox%3D%220%200%2056%2016%22%3E%3Cpath%20d%3D%22M28%204%20C%2020%204%2C%2012%206%2C%208%2011%20C%206%2014%2C%2010%2016%2C%2012%2013%22%20fill%3D%22none%22%20stroke%3D%22%23D4A9AE%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M28%204%20C%2036%204%2C%2044%206%2C%2048%2011%20C%2050%2014%2C%2046%2016%2C%2044%2013%22%20fill%3D%22none%22%20stroke%3D%22%23D4A9AE%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); }

/* Boutons de la bande d'appel : contour bordeaux p&#226;le sur le fond sombre. */
.fp-band--wine .fp-btn {
  background: transparent;
  border-color: var(--fp-accent-lt);
  color: #fff !important;
}
.fp-band--wine .fp-btn:hover {
  background: var(--fp-accent-lt);
  border-color: var(--fp-accent-lt);
  color: var(--fp-noir-vin) !important;
}
.fp-band--wine .fp-btn--ghost { border-color: rgba(255,255,255,.34); }
.fp-band--wine .fp-btn--ghost:hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.55);
  color: #fff !important;
}

.fp-band--ink .fp-h1,
.fp-band--ink .fp-h2,
.fp-band--ink .fp-h3 { color: #fff; }
.fp-band--ink .fp-eyebrow,
.fp-band--ink .fp-h4 { color: var(--fp-accent-lt); }
.fp-band--ink .fp-lede,
.fp-band--ink .fp-small,
.fp-band--ink .fp-note { color: rgba(255,255,255,.7); }
/* Textes courants des composants sur fond noir : sans cela ils h&#233;ritent
   du gris #555555, illisible sur du noir. */
.fp-band--ink .fp-value p,
.fp-band--ink .fp-card p,
.fp-band--ink .fp-case p,
.fp-band--ink .fp-person p,
.fp-band--ink .fp-info p,
.fp-band--ink .fp-list li { color: rgba(255,255,255,.72); }
.fp-band--ink .fp-list li::before { background: var(--fp-accent-lt); }
.fp-band--ink a { color: #fff; border-bottom-color: rgba(255,255,255,.4); }
.fp-band--ink a:hover { color: var(--fp-accent-lt); border-bottom-color: var(--fp-accent-lt); }
.fp-band--ink .fp-rule { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2256%22%20height%3D%2216%22%20viewBox%3D%220%200%2056%2016%22%3E%3Cpath%20d%3D%22M28%204%20C%2020%204%2C%2012%206%2C%208%2011%20C%206%2014%2C%2010%2016%2C%2012%2013%22%20fill%3D%22none%22%20stroke%3D%22%23D4A9AE%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M28%204%20C%2036%204%2C%2044%206%2C%2048%2011%20C%2050%2014%2C%2046%2016%2C%2044%2013%22%20fill%3D%22none%22%20stroke%3D%22%23D4A9AE%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); }

/* L'immeuble du 3, rue de Luynes en filigrane &#8212; toujours en marge, jamais sous le texte */
.fp-band--seal::after {
  content: '';
  position: absolute;
  right: max(24px, calc(50% - var(--fp-max) / 2));
  top: 50%;
  transform: translateY(-50%);
  width: 200px; height: 260px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22200%22%20height%3D%22260%22%20viewBox%3D%220%200%20200%20260%22%3E%3Cg%20stroke%3D%22rgba%280%2C0%2C0%2C0.06%29%22%20fill%3D%22none%22%20stroke-width%3D%220.8%22%3E%3Cpath%20d%3D%22M20%2040%20L40%2014%20L160%2014%20L180%2040%22%2F%3E%3Cpath%20d%3D%22M56%2026%20h14%20v14%20M96%2026%20h14%20v14%20M136%2026%20h14%20v14%22%2F%3E%3Cpath%20d%3D%22M14%2042%20L186%2042%20M18%2047%20L182%2047%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M25%2098%20L175%2098%22%2F%3E%3Cpath%20d%3D%22M32%2098%20c0%206%2010%206%2010%200%20M42%2098%20c0%206%2010%206%2010%200%20M52%2098%20c0%206%2010%206%2010%200%20M85%2098%20c0%206%2010%206%2010%200%20M95%2098%20c0%206%2010%206%2010%200%20M105%2098%20c0%206%2010%206%2010%200%20M138%2098%20c0%206%2010%206%2010%200%20M148%2098%20c0%206%2010%206%2010%200%20M158%2098%20c0%206%2010%206%2010%200%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M32%20154%20L68%20154%20M82%20154%20L118%20154%20M132%20154%20L168%20154%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M18%20206%20L182%20206%22%2F%3E%3Crect%20x%3D%2232%22%20y%3D%22216%22%20width%3D%2226%22%20height%3D%2236%22%2F%3E%3Crect%20x%3D%22142%22%20y%3D%22216%22%20width%3D%2226%22%20height%3D%2236%22%2F%3E%3Cpath%20d%3D%22M84%20252%20L84%20226%20A%2016%2016%200%200%201%20116%20226%20L116%20252%22%2F%3E%3Cpath%20d%3D%22M14%20252%20L186%20252%22%2F%3E%3C%2Fg%3E%3Crect%20x%3D%2286%22%20y%3D%2257%22%20width%3D%2228%22%20height%3D%2236%22%20fill%3D%22rgba%28122%2C46%2C59%2C0.07%29%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
  pointer-events: none;
}
.fp-band--ink.fp-band--seal::after { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22200%22%20height%3D%22260%22%20viewBox%3D%220%200%20200%20260%22%3E%3Cg%20stroke%3D%22rgba%28255%2C255%2C255%2C0.07%29%22%20fill%3D%22none%22%20stroke-width%3D%220.8%22%3E%3Cpath%20d%3D%22M20%2040%20L40%2014%20L160%2014%20L180%2040%22%2F%3E%3Cpath%20d%3D%22M56%2026%20h14%20v14%20M96%2026%20h14%20v14%20M136%2026%20h14%20v14%22%2F%3E%3Cpath%20d%3D%22M14%2042%20L186%2042%20M18%2047%20L182%2047%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%2256%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M25%2098%20L175%2098%22%2F%3E%3Cpath%20d%3D%22M32%2098%20c0%206%2010%206%2010%200%20M42%2098%20c0%206%2010%206%2010%200%20M52%2098%20c0%206%2010%206%2010%200%20M85%2098%20c0%206%2010%206%2010%200%20M95%2098%20c0%206%2010%206%2010%200%20M105%2098%20c0%206%2010%206%2010%200%20M138%2098%20c0%206%2010%206%2010%200%20M148%2098%20c0%206%2010%206%2010%200%20M158%2098%20c0%206%2010%206%2010%200%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%22112%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M32%20154%20L68%20154%20M82%20154%20L118%20154%20M132%20154%20L168%20154%22%2F%3E%3Crect%20x%3D%2235%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%2285%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Crect%20x%3D%22135%22%20y%3D%22162%22%20width%3D%2230%22%20height%3D%2238%22%2F%3E%3Cpath%20d%3D%22M18%20206%20L182%20206%22%2F%3E%3Crect%20x%3D%2232%22%20y%3D%22216%22%20width%3D%2226%22%20height%3D%2236%22%2F%3E%3Crect%20x%3D%22142%22%20y%3D%22216%22%20width%3D%2226%22%20height%3D%2236%22%2F%3E%3Cpath%20d%3D%22M84%20252%20L84%20226%20A%2016%2016%200%200%201%20116%20226%20L116%20252%22%2F%3E%3Cpath%20d%3D%22M14%20252%20L186%20252%22%2F%3E%3C%2Fg%3E%3Crect%20x%3D%2286%22%20y%3D%2257%22%20width%3D%2228%22%20height%3D%2236%22%20fill%3D%22rgba%28212%2C169%2C174%2C0.10%29%22%2F%3E%3C%2Fsvg%3E"); }
@media (max-width: 1240px) { .fp-band--seal::after { display: none; } }

.fp-wrap { max-width: var(--fp-max); margin: 0 auto; }
.fp-wrap--narrow { max-width: 720px; }

/* Bandeau d'ouverture de l'accueil */
.fp-hero { display: grid; grid-template-columns: 1fr 260px; gap: 64px; align-items: end; }
.fp-index { border-left: 1px solid var(--fp-accent); padding-left: 26px; }
.fp-band--ink .fp-index { border-left-color: rgba(255,255,255,.35); }
.fp-index ul { list-style: none; margin: 0 0 26px; padding: 0; }
.fp-index li { margin-bottom: 10px; }
.fp-index a {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: 17px;
  letter-spacing: -.01em;
  border-bottom: 1px solid transparent;
}
.fp-index-foot { font-size: 13.5px; line-height: 1.75; color: var(--fp-muted); margin: 0; }
.fp-band--ink .fp-index-foot { color: rgba(255,255,255,.6); }
.fp-index-foot span { font-size: 12px; }

/* --------------------------------------------------------------------------
   5. Typographie
   -------------------------------------------------------------------------- */
.fp-eyebrow {
  font-family: var(--fp-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--fp-accent);
  margin: 0 0 14px;
}

.fp-h1 {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(34px, 4.8vw, 52px);
  line-height: 1.14;
  letter-spacing: -.02em;
  text-wrap: balance;
  color: var(--fp-ink);
  margin: 0 0 18px;
}

/* Seconde ligne du titre d'accueil : le positionnement, sous la promesse.
   Corps interm&#233;diaire &#8212; elle doit se lire comme une suite du titre, pas
   comme un chap&#244;, et ne jamais lui disputer l'attention. */
.fp-h1-suite {
  display: block;
  font-family: var(--fp-display);
  font-size: clamp(18px, 2.1vw, 25px);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.01em;
  color: var(--fp-accent);
  margin-top: 16px;
}

.fp-h2 {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: clamp(24px, 3vw, 33px);
  line-height: 1.22;
  letter-spacing: -.02em;
  text-wrap: balance;
  color: var(--fp-ink);
  margin: 0 0 16px;
}

.fp-h3 {
  font-family: var(--fp-display);
  font-weight: 500;
  font-size: 19px;
  line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--fp-ink);
  margin: 0 0 12px;
}

.fp-h4 {
  font-family: var(--fp-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--fp-accent);
  margin: 0 0 10px;
}

.fp-lede {
  font-size: clamp(17px, 1.8vw, 19px);
  line-height: 1.65;
  color: var(--fp-muted);
  font-weight: 300;
}

.fp-small { font-size: 13.5px; color: var(--fp-muted); line-height: 1.7; }
.fp-note  { font-size: 12.5px; color: var(--fp-muted); line-height: 1.7; }

/* Ornement : la volute du sceau */
.fp-rule {
  width: 34px; height: 12px; border: 0; margin: 0 0 26px;
  background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2256%22%20height%3D%2216%22%20viewBox%3D%220%200%2056%2016%22%3E%3Cpath%20d%3D%22M28%204%20C%2020%204%2C%2012%206%2C%208%2011%20C%206%2014%2C%2010%2016%2C%2012%2013%22%20fill%3D%22none%22%20stroke%3D%22%237A2E3B%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M28%204%20C%2036%204%2C%2044%206%2C%2048%2011%20C%2050%2014%2C%2046%2016%2C%2044%2013%22%20fill%3D%22none%22%20stroke%3D%22%237A2E3B%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
}
.fp-rule--center { margin-left: auto; margin-right: auto; }

.fp-center { text-align: center; }

/* --------------------------------------------------------------------------
   6. Boutons &#8212; fond noir, angles vifs, survol bordeaux
   -------------------------------------------------------------------------- */
.fp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.fp-actions--center { justify-content: center; }

.fp-btn {
  display: inline-block;
  font-family: var(--fp-sans);
  font-size: 11.5px;
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 16px 30px;
  background: var(--fp-black);
  color: #fff !important;
  border: 1px solid var(--fp-black);
  border-radius: 0;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.fp-btn:hover { background: var(--fp-accent); border-color: var(--fp-accent); color: #fff !important; }

.fp-btn--ghost { background: transparent; color: var(--fp-black) !important; }
.fp-btn--ghost:hover { background: var(--fp-black); border-color: var(--fp-black); color: #fff !important; }

.fp-band--ink .fp-btn { background: #fff; border-color: #fff; color: var(--fp-black) !important; }
.fp-band--ink .fp-btn:hover { background: var(--fp-accent); border-color: var(--fp-accent); color: #fff !important; }
.fp-band--ink .fp-btn--ghost { background: transparent; border-color: rgba(255,255,255,.55); color: #fff !important; }
.fp-band--ink .fp-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--fp-black) !important; }

/* --------------------------------------------------------------------------
   7. Grilles et cartes &#8212; blanc sur gris perle, angles vifs
   -------------------------------------------------------------------------- */
.fp-grid { display: grid; gap: 24px; }
.fp-grid--2 { grid-template-columns: repeat(2, 1fr); }
.fp-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fp-grid--4 { grid-template-columns: repeat(4, 1fr); }

.fp-split { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; align-items: start; }
.fp-split > div:first-child { position: sticky; top: 96px; }

.fp-card {
  background: var(--fp-white);
  border: 1px solid var(--fp-line);
  border-radius: 0;
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  transition: border-color .25s ease;
}
.fp-card:hover { border-color: var(--fp-accent); }
.fp-card .fp-card-num {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-muted); margin: 0 0 16px;
}
.fp-card p { color: var(--fp-muted); font-size: 15px; }
.fp-card-link {
  margin-top: auto; padding-top: 18px;
  font-size: 12px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase;
  border-bottom: 0 !important;
}
.fp-card-link::after { content: ' \2192'; }

.fp-value .fp-h3 { margin-bottom: 10px; }
.fp-value p { color: var(--fp-muted); font-size: 15px; }

.fp-step { border-top: 1px solid var(--fp-accent); padding-top: 18px; }
.fp-step-num {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-accent); margin: 0 0 10px !important;
  font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   8. Listes
   -------------------------------------------------------------------------- */
.fp-list { list-style: none; margin: 0; padding: 0; }
.fp-list li {
  position: relative; padding: 0 0 0 20px; margin-bottom: 7px;
  font-size: 15px; line-height: 1.5; color: var(--fp-text);
}
.fp-list li::before {
  content: ''; position: absolute; left: 0; top: 11px;
  width: 9px; height: 1px; background: var(--fp-accent);
}
.fp-list--2 { columns: 2; column-gap: 44px; }
.fp-list--2 li { break-inside: avoid; }

.fp-cluster { margin-bottom: 0; }
.fp-cluster:last-child { margin-bottom: 0; }
.fp-cluster .fp-cluster-title {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-accent);
  padding-bottom: 9px; margin: 0 0 12px;
  border-bottom: 1px solid var(--fp-accent-lt);
}

/* Grappes d'interventions sur deux colonnes : on gagne en largeur
   ce qu'on ne perd pas en contenu. */
.fp-clusters { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px 48px; }
.fp-clusters .fp-list--2 { columns: 1; }
/* Nombre impair de grappes : la derni&#232;re occupe toute la largeur
   et repasse sur deux colonnes, pour ne pas laisser un vide &#224; droite. */
.fp-clusters > .fp-cluster:last-child:nth-child(odd) { grid-column: 1 / -1; }
.fp-clusters > .fp-cluster:last-child:nth-child(odd) .fp-list--2 { columns: 2; column-gap: 48px; }
@media (max-width: 900px) {
  .fp-clusters > .fp-cluster:last-child:nth-child(odd) .fp-list--2 { columns: 1; }
}

/* En-t&#234;te de section compact : titre &#224; gauche, pr&#233;cision &#224; droite */
.fp-head {
  display: grid; grid-template-columns: 1fr auto; gap: 20px 48px;
  align-items: end; margin-bottom: 30px;
}
.fp-head p.fp-small { max-width: 380px; margin: 0; }
.fp-head .fp-h2 { margin-bottom: 0; }
@media (max-width: 900px) {
  .fp-clusters { grid-template-columns: 1fr; }
  .fp-head { grid-template-columns: 1fr; align-items: start; }
}

/* Sommaire des publications */
.fp-sommaire { margin-bottom: 40px; }
.fp-sommaire:last-child { margin-bottom: 0; }
.fp-note-item {
  width: 100%;
  border-bottom-color: var(--fp-blush-dp);
  display: grid; grid-template-columns: 130px 1fr; gap: 6px 24px;
  padding: 18px 0; border-bottom: 1px solid var(--fp-line);
  border-bottom-color: var(--fp-line) !important;
  color: inherit; text-decoration: none;
  transition: background .2s ease;
}
.fp-note-item:hover { background: var(--fp-blush); }
.fp-note-item:hover b { color: var(--fp-accent); }
.fp-note-date {
  font-family: var(--fp-sans); font-size: 11px; font-weight: 400;
  letter-spacing: .2em; text-transform: uppercase; color: var(--fp-muted);
  padding-top: 5px;
}
.fp-note-corps b {
  display: block;
  font-family: var(--fp-display); font-weight: 500; font-size: 19px;
  line-height: 1.32; letter-spacing: -.01em; color: var(--fp-ink);
  margin-bottom: 6px;
  transition: color .2s ease;
}
.fp-note-corps em {
  font-style: normal; font-size: 15px; color: var(--fp-muted); line-height: 1.55;
}
@media (max-width: 640px) {
  .fp-note-item { grid-template-columns: 1fr; gap: 4px; }
}

/* Lignes de tarifs, page Exemples de forfaits */
.fp-tarifs { display: grid; gap: 0; }
.fp-tarif {
  display: grid; grid-template-columns: 205px 1fr; gap: 8px 22px;
  align-items: baseline;
  padding: 13px 0; border-bottom: 1px solid var(--fp-blush-dp);
}
.fp-tarif:last-child { border-bottom: 0; }
.fp-tarif b {
  font-family: var(--fp-display); font-weight: 500; font-size: 17px;
  letter-spacing: -.01em; color: var(--fp-accent);
  font-variant-numeric: tabular-nums;
}
.fp-tarif span { font-size: 15px; color: var(--fp-muted); }
@media (max-width: 640px) { .fp-tarif { grid-template-columns: 1fr; gap: 2px; } }

/* --------------------------------------------------------------------------
   9. D&#233;lais et seuils cl&#233;s
   -------------------------------------------------------------------------- */
.fp-facts-titre {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em;
  text-transform: uppercase; color: var(--fp-accent);
  margin: 0 0 22px;
}
.fp-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.fp-fact { border-top: 2px solid var(--fp-accent); padding-top: 18px; }
.fp-fact b {
  display: block;
  font-family: var(--fp-display); font-weight: 500;
  font-size: clamp(26px, 3vw, 34px); line-height: 1.1; letter-spacing: -.02em;
  color: var(--fp-accent); margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
}
.fp-band--ink .fp-fact b { color: #fff; }
.fp-band--ink .fp-fact { border-top-color: rgba(255,255,255,.4); }
.fp-fact span { font-size: 14.5px; color: var(--fp-muted); line-height: 1.6; display: block; }
.fp-band--ink .fp-fact span { color: rgba(255,255,255,.62); }
.fp-fact em {
  font-style: normal; font-size: 11.5px; color: var(--fp-accent);
  display: block; margin-top: 8px;
}
.fp-band--ink .fp-fact em { color: var(--fp-accent-lt); }

/* --------------------------------------------------------------------------
   10. Exemples d'intervention, rep&#232;res, interlocuteur
   -------------------------------------------------------------------------- */
.fp-cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 36px; }
.fp-case { border-top: 1px solid var(--fp-line); padding: 14px 0; }
.fp-case .fp-case-tag {
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-accent); margin: 0 0 8px;
}
.fp-case p { font-size: 15px; color: var(--fp-muted); margin: 0; }

.fp-marks { display: flex; flex-wrap: wrap; gap: 16px 46px; align-items: baseline; }
.fp-mark { display: flex; flex-direction: column; gap: 3px; }
.fp-mark b {
  font-family: var(--fp-display); font-size: 17px; font-weight: 500;
  letter-spacing: -.01em; color: var(--fp-ink);
}
.fp-band--ink .fp-mark b { color: #fff; }
.fp-mark span { font-size: 12.5px; color: var(--fp-muted); }
.fp-band--ink .fp-mark span { color: rgba(255,255,255,.6); }

.fp-person { border-top: 1px solid var(--fp-accent); padding-top: 24px; }
.fp-person .fp-role {
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-accent); margin: 0 0 8px;
}
.fp-person .fp-h3 { margin-bottom: 16px; }
.fp-person p { font-size: 15px; color: var(--fp-muted); }

.fp-info { border-top: 1px solid var(--fp-line); padding-top: 14px; margin-bottom: 20px; }
.fp-info p { font-size: 15.5px; margin-bottom: 0; }

.fp-quote {
  font-family: var(--fp-display);
  font-size: clamp(21px, 2.6vw, 29px);
  line-height: 1.4; font-weight: 500; letter-spacing: -.02em;
  color: var(--fp-ink); text-wrap: balance; margin: 0;
}
.fp-band--ink .fp-quote { color: #fff; }

/* --------------------------------------------------------------------------
   11. Accord&#233;ons (&#233;l&#233;ment HTML natif <details>, sans JavaScript)
   -------------------------------------------------------------------------- */
.fp-acc { border-top: 2px solid var(--fp-accent); }
.fp-acc details { border-bottom: 1px solid var(--fp-line); }
.fp-acc summary {
  list-style: none; cursor: pointer;
  padding: 16px 44px 16px 0; position: relative;
  font-family: var(--fp-display); font-weight: 500; font-size: 17px;
  letter-spacing: -.01em; color: var(--fp-ink);
  transition: color .2s ease;
}
.fp-acc summary::-webkit-details-marker { display: none; }
.fp-acc summary:hover { color: var(--fp-accent); }
.fp-acc summary:focus-visible { outline: 1px solid var(--fp-accent); outline-offset: 2px; }
.fp-acc summary::after {
  color: var(--fp-accent);
  content: '+'; position: absolute; right: 6px; top: 50%;
  transform: translateY(-50%);
  font-family: var(--fp-sans); font-size: 18px; font-weight: 300;
  color: var(--fp-accent);
}
.fp-acc details[open] summary::after { content: '\2013'; }
.fp-acc .fp-acc-body { padding: 0 44px 20px 0; color: var(--fp-muted); font-size: 15px; max-width: 62ch; }
.fp-acc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 48px; align-items: start; }
.fp-acc-pair .fp-eyebrow { margin-bottom: 10px; }
.fp-acc-pair .fp-h2 { margin-bottom: 20px; }
@media (max-width: 980px) { .fp-acc-pair { grid-template-columns: 1fr; gap: 40px; } }

.fp-acc--faq summary { font-family: var(--fp-sans); font-weight: 400; font-size: 15.5px; letter-spacing: 0; }
/* La réponse était bridée à 62 caractères de large, bien en deçà de la
   question posée au-dessus : justifiée, elle paraissait s'arrêter avant
   le bord. Elle prend désormais la même largeur que la question. */
.fp-acc--faq .fp-acc-body { max-width: none; font-size: 15.5px; line-height: 1.68; }

/* --------------------------------------------------------------------------
   11 bis. Photographies
      Un seul traitement pour toutes les images du site : noir et blanc,
      voile bordeaux tr&#232;s l&#233;ger, ombre port&#233;e douce. Les photographies
      accompagnent la page ; elles ne la prennent jamais en charge.
   -------------------------------------------------------------------------- */

/* a) En-t&#234;te avec photographie fondue sur la droite.
      Usage : ajouter la classe fp-band--hero-photo &#224; la balise section
      et l'adresse de l'image dans la variable --fp-photo.
      L'image se dissout vers la gauche : le texte reste sur fond propre. */
.fp-band--hero-photo { overflow: hidden; }
.fp-band--hero-photo > * { position: relative; z-index: 1; }
.fp-band--hero-photo::before {
  content: '';
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(54%, 820px);
  background-image: var(--fp-photo, none);
  background-size: cover;
  background-position: center;
  filter: grayscale(.18) contrast(.98) brightness(1.02) saturate(1.02);
  transition: filter .8s ease;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.28) 26%, rgba(0,0,0,.86) 62%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.28) 26%, rgba(0,0,0,.86) 62%, #000 100%);
  pointer-events: none;
}
/* Voile bordeaux : unifie la couleur de toutes les images entre elles */
.fp-band--hero-photo::after {
  content: '';
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(54%, 820px);
  background: linear-gradient(to right, rgba(122,46,59,0) 24%, rgba(122,46,59,.16) 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
}
/* Au survol, la photographie retrouve ses couleurs */
.fp-band--hero-photo:hover::before { filter: grayscale(0) contrast(1) brightness(1.02) saturate(1); }
@media (prefers-reduced-motion: reduce) { .fp-band--hero-photo::before { transition: none; } }
.fp-band--ink.fp-band--hero-photo::before { opacity: .42; }
.fp-band--ink.fp-band--hero-photo::after { display: none; }

@media (max-width: 900px) {
  .fp-band--hero-photo::before {
    width: 100%; opacity: .16;
    -webkit-mask-image: none; mask-image: none;
  }
  .fp-band--hero-photo::after { display: none; }
}

/* b) Photographie pos&#233;e derri&#232;re une bande enti&#232;re, tr&#232;s en retrait. */
.fp-band--photo > * { position: relative; z-index: 1; }
.fp-band--photo::before {
  content: '';
  position: absolute; inset: 0;
  background-image: var(--fp-photo, none);
  background-size: cover;
  background-position: center;
  filter: grayscale(.5) contrast(.9) brightness(1.12) saturate(1.05);
  opacity: .10;
  pointer-events: none;
}
.fp-band--ink.fp-band--photo::before { opacity: .18; }
.fp-band--blush.fp-band--photo::before { opacity: .11; }
/* Sur la bande d'appel, la photographie &#233;claire le fond au lieu de l'assombrir. */
.fp-band--wine.fp-band--photo::before {
  filter: grayscale(1) contrast(.7) brightness(1.2);
  opacity: .06;
}

/* c) Photographie encadr&#233;e, dans le flux du texte. */
.fp-figure { position: relative; margin: 0; }
.fp-figure img {
  display: block; width: 100%; height: auto;
  filter: grayscale(.12) contrast(1) brightness(1.02) saturate(1.08);
  box-shadow: 0 26px 60px -40px rgba(122,46,59,.45);
}
.fp-figure::after {
  content: ''; position: absolute; left: 0; right: 0; top: 0;
  height: 100%;
  background: rgba(122,46,59,.05);
  mix-blend-mode: multiply;
  pointer-events: none;
}
.fp-figure figcaption {
  position: relative; z-index: 1;
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .28em; text-transform: uppercase;
  color: var(--fp-muted);
  margin-top: 16px;
}
.fp-band--ink .fp-figure figcaption { color: rgba(255,255,255,.6); }
.fp-figure--wide img   { aspect-ratio: 16 / 7; object-fit: cover; }
.fp-figure--tall img   { aspect-ratio: 3 / 4;  object-fit: cover; }
.fp-figure--square img { aspect-ratio: 1 / 1;  object-fit: cover; }
.fp-figure--wide::after,
.fp-figure--tall::after,
.fp-figure--square::after { height: auto; bottom: 43px; }
.fp-figure--plain::after { bottom: 0; }

.fp-figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 640px) { .fp-figures { grid-template-columns: 1fr; } }

/* d) Portrait &#224; c&#244;t&#233; d'un texte : la colonne image est collante. */
.fp-split--photo { grid-template-columns: .85fr 1.15fr; gap: 56px; }
.fp-split--photo > figure:first-child { position: sticky; top: 96px; }
@media (max-width: 900px) {
  .fp-split--photo { grid-template-columns: 1fr; gap: 32px; }
  .fp-split--photo > figure:first-child { position: static; }
}
/* Variante image &#224; droite : le texte vient d'abord, la photo suit. Sans
   elle, deux bandes &#224; portrait se suivraient avec la m&#234;me image &#224;
   gauche, et la page prendrait un rythme de catalogue. Sur t&#233;l&#233;phone,
   l'ordre du source s'applique : le texte en premier, ce qui est le bon
   ordre de lecture. */
.fp-split--photo-droite { grid-template-columns: 1.15fr .85fr; }
.fp-split--photo-droite > div:first-child { position: sticky; top: 96px; }
.fp-split--photo-droite > figure { position: static; }
@media (max-width: 900px) {
  .fp-split--photo-droite { grid-template-columns: 1fr; }
  .fp-split--photo-droite > div:first-child { position: static; }
}

/* --------------------------------------------------------------------------
   12. Blocs utilisables DANS un article de la rubrique Publications
   -------------------------------------------------------------------------- */
.fp-inline { margin-left: 0; margin-right: 0; width: auto; max-width: none; padding: 0; }

.fp-keypoints {
  border-left: 3px solid var(--fp-accent);
  background: var(--fp-blush);
  padding: 26px 28px; margin: 34px 0;
}
.fp-keypoints .fp-keypoints-title {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase;
  color: var(--fp-accent); margin: 0 0 14px;
}
.fp-keypoints ul { list-style: none; margin: 0; padding: 0; }
.fp-keypoints li {
  position: relative; padding-left: 20px; margin-bottom: 10px;
  font-size: 15.5px; color: var(--fp-text);
}
.fp-keypoints li:last-child { margin-bottom: 0; }
.fp-keypoints li::before {
  content: ''; position: absolute; left: 0; top: 13px;
  width: 9px; height: 1px; background: var(--fp-accent);
}

.fp-disclaimer {
  border-top: 1px solid var(--fp-line);
  padding-top: 16px; margin-top: 34px;
  font-size: 12.5px; line-height: 1.7; color: var(--fp-muted);
}

.fp-postcta {
  background: var(--fp-black); padding: 32px;
  margin-top: 34px; display: flex; flex-wrap: wrap; gap: 20px;
  align-items: center; justify-content: space-between;
}
.fp-postcta .fp-postcta-text {
  font-family: var(--fp-display); font-size: 19px; font-weight: 500;
  letter-spacing: -.01em; line-height: 1.4; color: #fff; margin: 0; max-width: 460px;
}
.fp-postcta .fp-btn { background: #fff; border-color: #fff; color: var(--fp-black) !important; }
.fp-postcta .fp-btn:hover { background: var(--fp-accent); border-color: var(--fp-accent); color: #fff !important; }

.fp-byline {
  display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline;
  border-top: 1px solid var(--fp-line-firm); padding-top: 14px; margin-bottom: 28px;
  font-size: 13px; color: var(--fp-muted);
}
.fp-byline b {
  font-family: var(--fp-display); font-size: 16px; font-weight: 500;
  letter-spacing: -.01em; color: var(--fp-ink);
}

/* --------------------------------------------------------------------------
   13. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .fp-grid--3, .fp-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .fp-cases { grid-template-columns: repeat(2, 1fr); }
  .fp-facts { grid-template-columns: 1fr; gap: 22px; }
  .fp-split, .fp-hero { grid-template-columns: 1fr; gap: 34px; }
  .fp-split > div:first-child { position: static; }
  .fp-index { border-left: 0; border-top: 1px solid var(--fp-line-firm); padding: 24px 0 0; }
  .fp-band { padding: 48px 22px; }
}

@media (max-width: 640px) {
  .fp { font-size: 16px; }
  .fp-grid--2, .fp-grid--3, .fp-grid--4 { grid-template-columns: 1fr; }
  .fp-list--2 { columns: 1; }
  .fp-cases { grid-template-columns: 1fr; gap: 0; }
  .fp-clusters { grid-template-columns: 1fr; }
  .fp-band { padding: 40px 20px; }
  .fp-card { padding: 28px 22px; }
  .fp-actions .fp-btn { width: 100%; text-align: center; }
  .fp-postcta { padding: 26px 22px; }
  .fp-postcta .fp-btn { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .fp * { transition: none !important; }
}

/* --------------------------------------------------------------------------
   14. Impression
   -------------------------------------------------------------------------- */
@media print {
  .fp-band { padding: 20px 0; background: #fff !important; color: #000 !important; }
  .fp-band--seal::after { display: none; }
  .fp-btn, .fp-actions, .fp-postcta { display: none !important; }
}

/* =========================================================
   PIED DE PAGE
   Un filet bordeaux en d&#233;grad&#233; le s&#233;pare du corps de page ;
   le sceau et le filigrane de l'immeuble portent l'identit&#233;.
   ========================================================= */
.fp-foot {
  position: relative;
  padding: 64px 24px 30px;
  overflow: hidden;
}
.fp-foot::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg,
    var(--fp-accent) 0%, var(--fp-accent-lt) 32%,
    rgba(212,169,174,.22) 62%, transparent 100%);
}
.fp-foot .fp-wrap { position: relative; z-index: 1; }

.fp-foot-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.15fr;
  gap: 48px;
  align-items: start;
}
.fp-foot-brand { position: relative; padding-right: 48px; }
.fp-foot-brand::after {
  content: '';
  position: absolute; right: 0; top: 4px; bottom: 4px; width: 1px;
  background: linear-gradient(180deg,
    rgba(212,169,174,.34) 0%, rgba(255,255,255,.10) 45%, transparent 100%);
}

/* Colonne d'identit&#233; */
.fp-foot-seal { display: block; margin-bottom: 20px; }
.fp-foot-name {
  font-family: var(--fp-display); font-weight: 500; font-size: 16px;
  letter-spacing: .14em; text-transform: uppercase; color: #fff;
  margin: 0 0 5px;
}
.fp-foot-role {
  font-family: var(--fp-seal); font-size: 17px; font-style: italic;
  color: var(--fp-accent-lt); margin: 0 0 18px;
}
.fp-foot-addr {
  font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.62); margin: 0 0 12px;
}
/* L'acc&#232;s, repris de l'ancienne page contact : il appartient au bloc
   d'adresse, pas &#224; la colonne des coordonn&#233;es. */
.fp-foot-acces {
  font-size: 12.5px; line-height: 1.7;
  color: rgba(255,255,255,.42); margin: 0 0 14px;
}
.fp-foot-bar {
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(255,255,255,.38); margin: 0;
}

/* Colonnes de liens */
.fp-foot-title {
  font-family: var(--fp-sans); font-weight: 500;
  font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--fp-accent-lt);
  margin: 0 0 20px; padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.fp-foot-col a {
  display: inline-block;
  font-size: 14.5px; line-height: 1.45;
  color: rgba(255,255,255,.62);
  text-decoration: none; border-bottom: 0;
  margin-bottom: 11px;
  position: relative;
  transition: color .25s ease;
}
.fp-foot-col a::after {
  content: '';
  position: absolute; left: 0; bottom: -2px; height: 1px; width: 0;
  background: var(--fp-accent-lt);
  transition: width .3s ease;
}
.fp-foot-col a:hover { color: #fff; }
.fp-foot-col a:hover::after { width: 100%; }
/* Le <nav> EST la colonne : « .fp-foot-col nav a » ne désignait rien et
   les liens se suivaient sur une même ligne. */
.fp-foot-col a { display: block; width: fit-content; }

/* Nous joindre */
.fp-foot-col .fp-foot-tel, .fp-foot-col .fp-foot-mail { display: block; }
.fp-foot-tel {
  font-family: var(--fp-seal) !important;
  font-size: 27px !important; letter-spacing: .01em;
  color: #fff !important; margin-bottom: 10px !important;
}
.fp-foot-tel::after { display: none; }
.fp-foot-tel:hover { color: var(--fp-accent-lt) !important; }
.fp-foot-mail { font-size: 13.5px !important; word-break: break-word; }
/* La prise de rendez-vous quitte la barre de navigation pour aussi
   figurer ici : le pied de page est d&#233;sormais le seul endroit du site
   o&#249; l'on trouve toutes les mani&#232;res de joindre le cabinet. */
.fp-foot-rdv {
  margin-top: 14px !important;
  padding-bottom: 2px;
  font-size: 14px !important;
  color: var(--fp-accent-lt) !important;
  border-bottom: 1px solid rgba(212,169,174,.45) !important;
}
.fp-foot-rdv::after { display: none; }
.fp-foot-rdv:hover { color: #fff !important; border-bottom-color: #fff !important; }
.fp-foot-hours {
  font-size: 12.5px; line-height: 1.7;
  color: rgba(255,255,255,.38); margin: 16px 0 0;
}

/* Barre inf&#233;rieure */
.fp-foot-bottom {
  display: flex; flex-wrap: wrap; gap: 12px 32px;
  justify-content: space-between; align-items: baseline;
  margin-top: 52px; padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.fp-foot-legal {
  font-size: 11.5px; letter-spacing: .06em;
  color: rgba(255,255,255,.34); margin: 0;
}
.fp-foot-mini { display: flex; flex-wrap: wrap; gap: 26px; }
.fp-foot-mini a {
  font-size: 11.5px; letter-spacing: .06em;
  color: rgba(255,255,255,.34);
  text-decoration: none; border-bottom: 0;
  transition: color .25s ease;
}
.fp-foot-mini a:hover { color: var(--fp-accent-lt); }


/* En dessous de 980 px, l'identité passe sur sa propre ligne. Les trois
   colonnes de liens restent alors côte à côte : les répartir sur deux
   colonnes renvoyait « Nous joindre » seul à la ligne suivante, avec un
   grand vide à sa droite. */
@media (max-width: 980px) {
  .fp-foot-top { grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
  .fp-foot-brand { grid-column: 1 / -1; padding-right: 0; }
  .fp-foot-brand::after { display: none; }
}
/* Trop étroit pour trois colonnes : deux colonnes, et « Nous joindre »
   occupe toute la largeur plutôt que la moitié. */
@media (max-width: 720px) {
  .fp-foot-top { grid-template-columns: 1fr 1fr; gap: 34px 28px; }
  .fp-foot-joindre { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .fp-foot { padding-top: 48px; }
  .fp-foot-top { grid-template-columns: 1fr; gap: 34px; }
  .fp-foot-bottom { margin-top: 38px; }
  .fp-foot-mini { gap: 16px 22px; }
}

/* =========================================================
   JUSTIFICATION
   Le texte courant est justifi&#233;. La c&#233;sure automatique est
   indispensable : sans elle, la justification creuse des rivi&#232;res
   blanches dans les colonnes &#233;troites. Elle suppose que la langue
   soit d&#233;clar&#233;e &#8212; d'o&#249; le lang="fr" sur chaque bloc .fp, et le
   r&#233;glage de langue du site dans l'h&#233;bergeur.
   ========================================================= */
.fp p,
.fp li,
.fp .fp-lede,
.fp .fp-acc-body {
  text-align: justify;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
}

/* Ce qui ne se justifie pas : les blocs centr&#233;s, les libell&#233;s courts,
   les m&#233;tadonn&#233;es, le pied de page et les colonnes &#233;troites. */
.fp-center p,
.fp-center li,
.fp-center .fp-lede,
.fp-piege-formule,
.fp-eyebrow,
.fp-cluster-title,
.fp-keypoints-title,
.fp-note-date,
.fp-tarif span,
.fp-tarif b,
.fp-fact span,
.fp-fact em,
.fp-figure figcaption,
.fp-byline span,
.fp-postcta p,
.fp-foot p,
.fp-foot li,
.fp-foot a {
  text-align: left;
  -webkit-hyphens: manual;
  hyphens: manual;
}
.fp-center p,
.fp-center li,
.fp-center .fp-lede,
.fp-postcta p { text-align: center; }
.fp-postcta p { text-align: left; }

/* Les notes du blog sont compos&#233;es dans l'&#233;diteur natif de l'h&#233;bergeur :
   leur texte n'est pas dans un bloc .fp, il faut donc le justifier ici. */
.blog-item-content p,
.blog-item-content li,
.blog-item-wrapper .sqs-block-html p,
.blog-item-wrapper .sqs-block-html li {
  text-align: justify;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
}

/* =========================================================
   PAGES-OFFRE
   Format des pages qui portent une offre activable : un
   auto-diagnostic, une mise en regard &#171; ce qui est &#233;crit /
   ce que &#231;a produit &#187;, un bloc d'offre chiffr&#233;, et des notes
   de bas de page class&#233;es par hi&#233;rarchie des normes.
   ========================================================= */

/* --- Auto-diagnostic : le lecteur coche, il se qualifie seul --- */
.fp-diag {
  background: var(--fp-blush);
  border-left: 3px solid var(--fp-accent);
  padding: 30px 32px;
  margin: 0;
}
.fp-diag-titre {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em;
  text-transform: uppercase; color: var(--fp-accent);
  margin: 0 0 18px;
}
.fp-diag ul { list-style: none; margin: 0; padding: 0; }
.fp-diag li {
  display: grid; grid-template-columns: 26px 1fr; gap: 14px;
  align-items: start;
  padding: 13px 0;
  border-bottom: 1px solid var(--fp-blush-dp);
  font-size: 15.5px; line-height: 1.55; color: var(--fp-text);
  text-align: left;
}
.fp-diag li:last-child { border-bottom: 0; }
.fp-diag input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 17px; height: 17px; margin: 3px 0 0;
  border: 1px solid var(--fp-accent); border-radius: 0;
  background: #fff; cursor: pointer;
  transition: background .15s ease;
}
.fp-diag input[type="checkbox"]:checked { background: var(--fp-accent); }
.fp-diag input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--fp-accent); outline-offset: 2px;
}
.fp-diag-fin {
  margin: 22px 0 0; padding-top: 18px;
  border-top: 1px solid var(--fp-accent);
  font-size: 15px; line-height: 1.6; color: var(--fp-text);
}
.fp-diag-fin b { font-weight: 500; }

/* --- Mise en regard : la formule et ce qu'elle produit --- */
.fp-pieges { margin: 0; }
.fp-piege {
  display: grid; grid-template-columns: 235px 1fr 275px; gap: 10px 40px;
  padding: 30px 0;
  border-top: 1px solid var(--fp-blush-dp);
}
.fp-piege:last-child { border-bottom: 1px solid var(--fp-blush-dp); }
.fp-piege-formule {
  font-family: var(--fp-seal);
  font-size: 21px; line-height: 1.35; color: var(--fp-accent);
  text-align: left;
}
.fp-piege-formule span {
  display: block;
  font-family: var(--fp-sans); font-size: 11px; font-weight: 400;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--fp-muted); margin-top: 10px;
}
.fp-piege-effet p { margin: 0 0 10px; font-size: 15.5px; }
.fp-piege-effet p:last-child { margin-bottom: 0; }
.fp-piege-effet b {
  font-family: var(--fp-sans); font-weight: 500;
  color: var(--fp-ink);
}
/* Troisi&#232;me colonne : l'exemple chiffr&#233; */
.fp-piege-exemple {
  background: var(--fp-white);
  border-left: 2px solid var(--fp-accent);
  padding: 18px 20px;
  align-self: start;
}
.fp-piege-exemple .fp-piege-cas {
  font-family: var(--fp-sans);
  font-size: 11.5px; font-weight: 400; letter-spacing: .2em;
  text-transform: uppercase; color: var(--fp-accent);
  margin: 0 0 12px;
}
.fp-piege-exemple p {
  margin: 0 0 9px;
  font-size: 13.5px; line-height: 1.6; color: var(--fp-muted);
  font-variant-numeric: tabular-nums;
}
.fp-piege-exemple p:last-child { margin-bottom: 0; }
.fp-piege-exemple b {
  font-family: var(--fp-display); font-weight: 500;
  color: var(--fp-accent); font-size: 15px;
}
.fp-piege-exemple .fp-piege-chute {
  padding-top: 9px; margin-top: 11px;
  border-top: 1px solid var(--fp-blush-dp);
  color: var(--fp-ink);
}

@media (max-width: 1040px) {
  .fp-piege { grid-template-columns: 210px 1fr; }
  .fp-piege-exemple { grid-column: 2; margin-top: 4px; }
}
@media (max-width: 820px) {
  .fp-piege { grid-template-columns: 1fr; gap: 16px; }
  .fp-piege-exemple { grid-column: 1; }
}

/* --- Le bloc d'offre --- */
.fp-offre {
  background: #fff;
  border: 1px solid var(--fp-line);
  border-top: 3px solid var(--fp-accent);
  padding: 38px 40px;
}
.fp-offre-tete {
  display: grid; grid-template-columns: 1fr auto; gap: 20px 40px;
  align-items: start;
  padding-bottom: 26px; margin-bottom: 26px;
  border-bottom: 1px solid var(--fp-blush-dp);
}
.fp-offre-tete h3 {
  font-family: var(--fp-display); font-weight: 500;
  font-size: 25px; line-height: 1.25; letter-spacing: -.01em;
  color: var(--fp-ink); margin: 0 0 8px;
}
.fp-offre-tete p { margin: 0; font-size: 15.5px; color: var(--fp-muted); }
.fp-prix {
  font-family: var(--fp-seal);
  font-size: 40px; line-height: 1; color: var(--fp-accent);
  white-space: nowrap; text-align: right;
}
.fp-prix span {
  display: block;
  font-family: var(--fp-sans); font-size: 11px; font-weight: 400;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--fp-muted); margin-top: 10px;
}
.fp-offre-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 44px; }
@media (max-width: 760px) {
  .fp-offre { padding: 30px 24px; }
  .fp-offre-tete { grid-template-columns: 1fr; }
  .fp-prix { text-align: left; }
  .fp-offre-grille { grid-template-columns: 1fr; }
}

/* --- Appels de note et sources --- */
/* R&#233;f&#233;rence cit&#233;e au fil du texte : pr&#233;sente, jamais encombrante */
.fp-src {
  font-size: .82em;
  color: var(--fp-muted);
}
/* Une source longue doit pouvoir revenir &#224; la ligne : sur &#233;cran &#233;troit, un
   &#171; nowrap &#187; g&#233;n&#233;ral d&#233;bordait de la page. Pour emp&#234;cher une r&#233;f&#233;rence courte
   de se couper en deux, utiliser des espaces ins&#233;cables dans le texte. */
.fp-src--court { white-space: nowrap; }

sup.fp-ref {
  font-family: var(--fp-sans); font-size: 10.5px; font-weight: 500;
  color: var(--fp-accent); vertical-align: super; line-height: 0;
  margin-left: 1px;
}
.fp-sources { margin-top: 10px; }
.fp-sources-groupe {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .3em;
  text-transform: uppercase; color: var(--fp-accent);
  margin: 30px 0 12px; padding-bottom: 9px;
  border-bottom: 1px solid var(--fp-blush-dp);
}
.fp-sources-groupe:first-child { margin-top: 0; }
.fp-sources ol { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.fp-sources li {
  display: grid; grid-template-columns: 30px 1fr; gap: 12px;
  padding: 7px 0;
  font-size: 13.5px; line-height: 1.65; color: var(--fp-muted);
  text-align: left;
}
.fp-sources li b {
  font-family: var(--fp-sans); font-weight: 500;
  color: var(--fp-accent); font-variant-numeric: tabular-nums;
}
.fp-sources li i { font-style: italic; }

/* =========================================================
   QCM PROGRESSIF
   Sans JavaScript, les six questions s'affichent &#224; la suite et
   la page reste utilisable. Avec JavaScript, le script ajoute
   la classe .fp-qcm--js et le questionnaire se d&#233;roule une
   question &#224; la fois. Rien n'est jamais cach&#233; par le CSS seul.
   ========================================================= */
.fp-qcm {
  background: var(--fp-white);
  border: 1px solid var(--fp-line);
  border-top: 3px solid var(--fp-accent);
  padding: 34px 38px;
}
.fp-qcm-barre {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 26px;
}
.fp-qcm--js .fp-qcm-barre { display: flex; }
.fp-qcm-barre { display: none; }
.fp-qcm-piste {
  flex: 1; height: 2px; background: var(--fp-blush-dp);
  position: relative; overflow: hidden;
}
.fp-qcm-jauge {
  position: absolute; inset: 0 auto 0 0;
  background: var(--fp-accent); width: 0;
  transition: width .35s ease;
}
.fp-qcm-compteur {
  font-family: var(--fp-sans); font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--fp-muted);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}

.fp-qcm-etape { padding: 4px 0; }
.fp-qcm--js .fp-qcm-etape { display: none; }
.fp-qcm--js .fp-qcm-etape.est-active { display: block; }
.fp-qcm-etape + .fp-qcm-etape { margin-top: 30px; }
.fp-qcm--js .fp-qcm-etape + .fp-qcm-etape { margin-top: 0; }

.fp-qcm-question {
  font-family: var(--fp-display); font-weight: 500;
  font-size: 21px; line-height: 1.35; letter-spacing: -.01em;
  color: var(--fp-ink); margin: 0 0 6px; text-align: left;
}
.fp-qcm-aide {
  font-size: 13.5px; line-height: 1.6; color: var(--fp-muted);
  margin: 0 0 20px; text-align: left;
}
.fp-qcm-choix { display: grid; gap: 10px; margin: 0; }
.fp-qcm-choix label {
  display: grid; grid-template-columns: 18px 1fr; gap: 14px;
  align-items: start;
  padding: 14px 18px;
  border: 1px solid var(--fp-line);
  font-size: 15.5px; line-height: 1.5; color: var(--fp-text);
  text-align: left; cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.fp-qcm-choix label:hover { border-color: var(--fp-accent-lt); background: var(--fp-blush); }
.fp-qcm-choix input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 15px; height: 15px; margin: 3px 0 0;
  border: 1px solid var(--fp-accent); border-radius: 50%;
  background: #fff; cursor: pointer;
}
.fp-qcm-choix input[type="radio"]:checked {
  background: var(--fp-accent); box-shadow: inset 0 0 0 3px #fff;
}
.fp-qcm-choix input[type="radio"]:focus-visible {
  outline: 2px solid var(--fp-accent); outline-offset: 3px;
}
.fp-qcm-choix input[type="radio"]:checked + span { color: var(--fp-ink); font-weight: 500; }
.fp-qcm-choix label:has(input:checked) {
  border-color: var(--fp-accent); background: var(--fp-blush);
}

.fp-qcm-pied {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-top: 26px; padding-top: 22px;
  border-top: 1px solid var(--fp-blush-dp);
}
.fp-qcm--js .fp-qcm-pied { display: flex; }
.fp-qcm-pied { display: none; }
.fp-qcm-retour {
  background: none; border: 0; padding: 0;
  font-family: var(--fp-sans); font-size: 12px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--fp-muted);
  cursor: pointer; transition: color .2s ease;
}
.fp-qcm-retour:hover { color: var(--fp-accent); }
.fp-qcm-retour[hidden] { visibility: hidden; display: block !important; }
.fp-qcm-suite {
  font-family: var(--fp-sans); font-size: 11.5px; letter-spacing: .22em;
  text-transform: uppercase; padding: 15px 30px;
  background: var(--fp-black); color: #fff; border: 1px solid var(--fp-black);
  border-radius: 0; cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
.fp-qcm-suite:hover { background: var(--fp-accent); border-color: var(--fp-accent); }
.fp-qcm-suite:disabled { opacity: .35; cursor: not-allowed; }

/* Le verdict */
.fp-qcm-verdict { text-align: left; }
.fp-qcm-verdict h3 {
  font-family: var(--fp-display); font-weight: 500;
  font-size: 25px; line-height: 1.25; color: var(--fp-wine);
  margin: 0 0 14px;
}
.fp-qcm-verdict p { font-size: 15.5px; margin: 0 0 12px; }
.fp-qcm-verdict ul { list-style: none; margin: 18px 0 0; padding: 0; }
.fp-qcm-verdict li {
  position: relative; padding-left: 20px; margin-bottom: 9px;
  font-size: 15px; line-height: 1.5; text-align: left;
}
.fp-qcm-verdict li::before {
  content: ''; position: absolute; left: 0; top: 11px;
  width: 9px; height: 1px; background: var(--fp-accent);
}
.fp-qcm-suite-note {
  margin-top: 24px; padding-top: 18px;
  border-top: 1px solid var(--fp-accent);
  font-size: 14.5px; line-height: 1.6; color: var(--fp-text);
}
.fp-qcm-sansjs {
  margin-top: 26px; padding-top: 20px;
  border-top: 1px solid var(--fp-blush-dp);
  font-size: 13.5px; line-height: 1.65; color: var(--fp-muted);
}
.fp-qcm--js .fp-qcm-sansjs { display: none; }

@media (max-width: 620px) {
  .fp-qcm { padding: 26px 22px; }
  .fp-qcm-pied { flex-direction: column-reverse; align-items: stretch; }
  .fp-qcm-suite { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-qcm-jauge { transition: none; }
}

/* ==========================================================================
   MISE EN AVANT DE L'ONGLET SERVICES DANS LA NAVIGATION SQUARESPACE
   ==========================================================================
   Contrairement au reste de cette feuille, ce bloc ne vise pas nos propres
   blocs de code : il vise le menu que l'h&#233;bergeur g&#233;n&#232;re lui-m&#234;me. Les
   s&#233;lecteurs sont donc rattach&#233;s &#224; l'adresse de la page, /services, et non
   &#224; une classe &#8212; c'est le seul rep&#232;re qui ne change pas d'un mod&#232;le &#224;
   l'autre ni d'une mise &#224; jour &#224; l'autre.

   Si le menu ne change pas d'aspect apr&#232;s avoir coll&#233; la feuille :
   ouvrez le site, clic droit sur l'onglet Services &#8594; Inspecter, et
   relevez la classe du conteneur. Elle remplace .header-nav-item
   ci-dessous. Le reste des d&#233;clarations reste valable.

   &#9888;&#65039; L'ordre des onglets ne se r&#232;gle pas ici mais dans Pages : glissez
   Services avant Publications, et Contact en dernier.
   ========================================================================== */

.header-nav-item a[href="/services"],
.header-menu-nav-item a[href="/services"] {
  background: var(--fp-accent, #7A2E3B);
  color: #FFFFFF !important;
  padding: 7px 14px;
  border-radius: 0;
  transition: background .2s ease;
}

.header-nav-item a[href="/services"]:hover,
.header-menu-nav-item a[href="/services"]:hover {
  background: var(--fp-black, #000000);
  color: #FFFFFF !important;
}

/* l'h&#233;bergeur souligne l'onglet de la page courante. Sur un fond plein, ce
   soulignement se voit mal et double l'indication : on le neutralise. */
.header-nav-item--active a[href="/services"]::after,
.header-nav-item a[href="/services"]::after {
  display: none;
}

/* Sur mobile, le menu d&#233;roulant aligne des liens pleine largeur : le
   rectangle y prend toute la ligne, ce qui est le comportement voulu. */
@media (max-width: 767px) {
  .header-menu-nav-item a[href="/services"] {
    display: inline-block;
  }
}


/* --------------------------------------------------------------------------
   15. Articles de doctrine
   Un article ne se lit pas comme une page d'offre : colonne plus étroite,
   pas d'alternance de bandes colorées, titres moins hauts. Le seul élément
   coloré conservé est l'encadré de chiffres clés, qui porte ses références.
   -------------------------------------------------------------------------- */
.fp-doctrine .fp-band            { background: var(--fp-white); padding: 46px 24px; }
.fp-doctrine .fp-band + .fp-band { border-top: 1px solid var(--fp-line); }
.fp-doctrine .fp-band--paper     { background: var(--fp-paper); padding-bottom: 54px; }
/* La largeur de la colonne.
   Elle &#233;tait fix&#233;e &#224; 760 px pour tout l'article. Mais le corps d'un
   article est pos&#233; dans une trame &#224; deux colonnes : le rep&#232;re et le
   titre &#224; gauche, le texte &#224; droite. Ces 760 px se r&#233;partissaient donc
   en 297 px de titre et 415 px de texte, soit une cinquantaine de
   caract&#232;res par ligne &#8212; un ruban trop maigre, qui laissait la page
   vide de part et d'autre.
   On ouvre la trame &#224; 980 px, la colonne de titre est fix&#233;e, et tout
   l'espace gagn&#233; va au texte. La mesure passe &#224; une septantaine de
   caract&#232;res, qui est la bonne largeur de lecture : au-del&#224;, l'&#339;il
   perd le d&#233;but de la ligne suivante. */
.fp-doctrine .fp-wrap            { max-width: 980px; }
.fp-doctrine .fp-wrap--narrow    { max-width: 980px; }
/* La trame &#224; deux colonnes ne vaut qu'&#224; partir de l'&#233;cran large. En
   dessous de 900 px la r&#232;gle g&#233;n&#233;rale la replie sur une colonne : il
   faut donc borner celle-ci, sinon sa colonne de titre fixe impose au
   t&#233;l&#233;phone une largeur sup&#233;rieure &#224; celle de l'&#233;cran. */
@media (min-width: 901px) {
  .fp-doctrine .fp-split         { grid-template-columns: 294px minmax(0, 1fr);
                                   gap: 54px; }
}
/* Le plafond de mesure vaut pour tout le corps de l'article, dans la
   trame comme dans les bandes qui n'en ont pas : sans lui, les blocs
   pleine largeur courraient sur 980 px. */
.fp-doctrine p,
.fp-doctrine li                  { max-width: 72ch; }
.fp-doctrine .fp-lede,
.fp-doctrine .fp-reponse         { max-width: 760px; }
@media (min-width: 901px) and (max-width: 1040px) {
  .fp-doctrine .fp-split         { grid-template-columns: 260px minmax(0, 1fr);
                                   gap: 44px; }
}
.fp-doctrine .fp-h2 {
  font-size: clamp(21px, 2.3vw, 26px);
  margin-top: 4px;
}
.fp-doctrine .fp-h3 { font-size: 17.5px; }
.fp-doctrine p      { font-size: 16.5px; line-height: 1.72; }
.fp-doctrine .fp-lede { font-size: clamp(17px, 1.7vw, 18.5px); }

/* L'encadré de chiffres reste la seule respiration visuelle. */
.fp-doctrine .fp-facts { gap: 20px; }
.fp-doctrine .fp-fact b { font-size: clamp(22px, 2.4vw, 28px); }

/* La position du cabinet garde un fond, pour se distinguer de l'exposé. */
.fp-doctrine .fp-band--blush { background: var(--fp-blush); }

@media (max-width: 900px) {
  .fp-doctrine .fp-band { padding: 36px 22px; }
}

/* Contact direct sous le bouton de prise de rendez-vous. */
.fp-contact-direct {
  margin-top: 20px; font-size: 14.5px; letter-spacing: .01em;
}
.fp-contact-direct span { opacity: .5; margin: 0 8px; }


/* --------------------------------------------------------------------------
   18. La carte d'offre posée sur une bande bordeaux
   Depuis la refonte des pages de services, le bandeau « Notre offre » est
   bordeaux, mais la carte qu'il porte est restée blanche. Les règles de la
   bande (section 2) passent tout son texte en blanc : sans les reprises qui
   suivent, les deux listes « Ce que nous faisons » et « Ce que vous recevez »
   s'affichent en blanc sur blanc, donc invisibles.
   -------------------------------------------------------------------------- */
.fp-band--wine .fp-offre h3,
.fp-band--wine .fp-offre .fp-h3     { color: var(--fp-ink); }
.fp-band--wine .fp-offre p,
.fp-band--wine .fp-offre .fp-lede   { color: var(--fp-text); }
.fp-band--wine .fp-offre .fp-offre-tete p { color: var(--fp-muted); }
.fp-band--wine .fp-offre .fp-list li,
.fp-band--wine .fp-offre li         { color: var(--fp-text); }
.fp-band--wine .fp-offre li strong  { color: var(--fp-ink); }
.fp-band--wine .fp-offre .fp-list li::before { background: var(--fp-accent); }
.fp-band--wine .fp-offre .fp-cluster-title,
.fp-band--wine .fp-offre .fp-eyebrow { color: var(--fp-accent); }
.fp-band--wine .fp-offre .fp-prix    { color: var(--fp-accent); }
.fp-band--wine .fp-offre .fp-prix span,
.fp-band--wine .fp-offre .fp-note,
.fp-band--wine .fp-offre .fp-small   { color: var(--fp-muted); }
.fp-band--wine .fp-offre a {
  color: var(--fp-accent);
  border-bottom-color: var(--fp-accent-lt);
}
.fp-band--wine .fp-offre a:hover {
  color: var(--fp-ink);
  border-bottom-color: var(--fp-ink);
}

/* Les deux intitulés de colonne de la carte d'offre ne sont pas enveloppés
   dans un .fp-cluster : sans cette reprise, ils s'affichent en corps de
   texte et rompent la convention d'étiquette du reste du site. */
.fp-offre .fp-cluster-title {
  font-family: var(--fp-sans);
  font-size: 11px; font-weight: 400; letter-spacing: .28em;
  text-transform: uppercase; color: var(--fp-accent);
  padding-bottom: 9px; margin: 0 0 14px;
  border-bottom: 1px solid var(--fp-accent-lt);
}



/* --------------------------------------------------------------------------
   19. Reprises du 18 octobre
   -------------------------------------------------------------------------- */

/* Accueil — la seconde ligne du titre devient un paragraphe à part entière,
   aligné et justifié comme le chapô qui le suit. */
p.fp-h1-suite { margin: 16px 0 20px; }

/* Accueil — la trame commune.
   Chaque section inventait sa grille : le héros au fer à gauche, la
   conviction centrée, les honoraires sur deux colonnes inégales. Une seule
   trame tient maintenant la page. À gauche le repère et le titre, à droite
   le contenu, du haut en bas. */
.fp-split--trame { align-items: start; }
.fp-split--trame > div:first-child { position: sticky; top: 96px; text-align: left; }
.fp-split--trame .fp-h2 { text-align: left; margin-bottom: 22px; }
.fp-split--trame .fp-eyebrow { text-align: left !important; }
.fp-split--trame .fp-actions { margin-top: 26px; }
.fp-small--large { max-width: none; margin: 0 0 26px; }
@media (max-width: 900px) {
  .fp-split--trame > div:first-child { position: static; }
}

/* Le cabinet — le titre.
   Posé dans le caractère du sceau plutôt qu'en sans serif : sur une page de
   présentation, une ligne de Cormorant tient l'affiche là où le Manrope
   massif écrasait la photo. */
.fp-h1--seal {
  font-family: var(--fp-seal);
  font-weight: 400;
  font-size: clamp(36px, 5vw, 62px);
  line-height: 1.08;
  letter-spacing: -.005em;
  max-width: 15.5em;
}
.fp-h1--seal + .fp-lede { margin-top: 22px; }

/* Le cabinet — la présentation tient toute la largeur, mais en deux colonnes
   typographiques : une ligne de 1 200 px ne se lit pas. */
/* La thèse s'ouvre sur une ligne détachée, puis le corps passe en deux
   colonnes courtes. En un seul pavé pleine largeur, le texte se lisait
   comme un bloc, quelle que soit sa longueur. */
.fp-these-amorce {
  font-family: var(--fp-seal);
  font-size: clamp(23px, 2.7vw, 33px);
  line-height: 1.22; color: var(--fp-ink);
  max-width: 17em; margin: 0 0 34px;
  text-align: left;
}
.fp-presentation { max-width: none; }
.fp-presentation p { font-size: 16.5px; line-height: 1.8; margin: 0 0 20px; }
.fp-presentation p:last-child { margin-bottom: 0; }
@media (min-width: 900px) {
  .fp-presentation { columns: 2; column-gap: 72px; }
  .fp-presentation p { break-inside: avoid; margin-bottom: 22px; }
}

/* Le cabinet — les dernières réalisations.
   Une entrée par dossier, séparée par un filet, sans puce ronde : la lecture
   doit être celle d'un relevé de références, non d'une liste commerciale. */
/* Chaque matière tient dans une carte blanche posée sur la bande rose :
   la page du cabinet n'avait que des fonds gris identiques et paraissait
   monochrome. Le filet bordeaux en tête de carte porte la couleur. */
.fp-reals { gap: 28px; }
.fp-real {
  background: var(--fp-white);
  border-top: 3px solid var(--fp-accent);
  padding: 26px 26px 22px;
}
.fp-real .fp-rule { display: none; }
.fp-real .fp-h3 {
  margin: 0 0 16px; padding-bottom: 12px;
  color: var(--fp-accent);
  border-bottom: 1px solid var(--fp-blush-dp);
}
.fp-real-liste { list-style: none; margin: 0; padding: 0; }
.fp-real-liste li {
  position: relative;
  padding: 14px 0 14px 18px;
  border-top: 1px solid var(--fp-line);
  font-size: 14.5px; line-height: 1.6; color: var(--fp-text);
  text-align: justify; text-justify: inter-word;
  -webkit-hyphens: auto; hyphens: auto;
}
.fp-real-liste li:first-child { border-top: 0; padding-top: 0; }
.fp-real-liste li::before {
  content: ''; position: absolute; left: 0; top: 22px;
  width: 8px; height: 1px; background: var(--fp-accent);
}
.fp-real-liste li:first-child::before { top: 9px; }
/* Les montants et précisions sont désormais des incises entre parenthèses,
   dans le fil du texte. Le gras porte le relief : il marque le client et la
   matière, deux par entrée, pas davantage. */
.fp-real-liste b {
  font-family: var(--fp-sans); font-weight: 500; color: var(--fp-ink);
}
@media (max-width: 900px) {
  .fp-reals { gap: 26px; }
}

/* Le texte de droite : une amorce, deux cas détachés, une chute.
   Les cas portent un filet bordeaux et un léger retrait, pour qu'on voie
   d'un coup d'œil qu'il s'agit d'exemples et non de la démonstration. */
.fp-conviction .fp-lede { margin-bottom: 26px; }
/* Les deux exemples gardent le filet bordeaux mais perdent leur fond :
   avec les boîtes des pratiques en face, deux familles d'objets dessinés se
   répondaient de part et d'autre de la page. */
.fp-cas {
  position: relative;
  border-left: 2px solid var(--fp-accent-lt);
  padding: 4px 0 4px 20px;
  margin: 0 0 20px;
}
.fp-cas p { margin: 0; font-size: 15.5px; line-height: 1.68; }
.fp-cas b {
  font-family: var(--fp-sans); font-weight: 500; color: var(--fp-ink);
}
@media (max-width: 760px) {
  .fp-cas { padding: 2px 0 2px 16px; }
}

/* --------------------------------------------------------------------------
   20. Accueil — les trois pratiques dans la colonne de gauche
   La bande « Domaines d'intervention » allongeait la page d'un écran entier
   pour trois liens. Ils tiennent désormais sous le titre de la conviction,
   en boîtes horizontales : même information, un tiers de hauteur en moins.
   -------------------------------------------------------------------------- */
.fp-pratiques { margin-top: 38px; text-align: left; }
.fp-pratiques-titre {
  text-align: left !important;
  margin: 0 0 14px;
}
.fp-pratique {
  display: flex; flex-direction: column; gap: 3px;
  padding: 14px 42px 14px 18px;
  position: relative;
  background: var(--fp-white);
  border: 1px solid var(--fp-line);
  border-left: 2px solid var(--fp-accent-lt);
  text-decoration: none; border-bottom-width: 1px;
  margin-bottom: 10px;
  transition: border-left-color .25s ease, background .25s ease;
}
.fp-pratique:last-child { margin-bottom: 0; }
.fp-pratique::after {
  content: '\2192';
  position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
  color: var(--fp-accent); font-size: 15px;
  transition: transform .25s ease;
}
.fp-pratique:hover {
  background: var(--fp-blush);
  border-left-color: var(--fp-accent);
}
.fp-pratique:hover::after { transform: translate(4px, -50%); }
.fp-pratique-nom {
  font-family: var(--fp-display); font-weight: 500; font-size: 16px;
  color: var(--fp-ink); letter-spacing: .005em;
}
.fp-pratique-note {
  font-family: var(--fp-sans); font-size: 13px; line-height: 1.45;
  color: var(--fp-muted);
}
@media (max-width: 900px) {
  .fp-pratiques { margin-top: 30px; }
}

/* --------------------------------------------------------------------------
   21. Phrase de r&#233;ponse des articles
   Sous le chap&#244; de chaque article, une phrase unique qui r&#233;pond &#224; la
   question trait&#233;e. C'est ce fragment que les moteurs de recherche
   pr&#233;l&#232;vent pour leurs extraits, et que les moteurs de r&#233;ponse citent :
   il doit donc se tenir seul, hors de son contexte, et n'emporter qu'une
   proposition. Filet bordeaux &#224; gauche, corps l&#233;g&#232;rement sup&#233;rieur au
   texte courant, sans exc&#232;s : la phrase est un rep&#232;re, pas un encadr&#233;.
   -------------------------------------------------------------------------- */
.fp-reponse {
  margin: 28px 0 0;
  padding: 2px 0 2px 20px;
  max-width: 720px;
  border-left: 2px solid var(--fp-accent);
  font-family: var(--fp-display);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--fp-ink);
  text-align: left;
}
@media (max-width: 720px) {
  .fp-reponse { font-size: 16px; padding-left: 15px; }
}


/* --------------------------------------------------------------------------
   16. En-tête de navigation et formulaire
   La plateforme fournissait l’en-tête ; le site statique doit le porter.
   Le menu mobile fonctionne sans JavaScript : une case à cocher masquée.
   -------------------------------------------------------------------------- */
:root { --sh-ink:#1A1A1A; --sh-accent:#7A2E3B; --sh-line:rgba(0,0,0,.12);
        --sh-display:'Manrope',Helvetica,Arial,sans-serif; --sh-max:1120px; }
body { margin:0; }
.sh-skip { position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--sh-accent); color:#fff; padding:10px 16px;
  font-family:var(--sh-display); font-size:14px; text-decoration:none; }
.sh-skip:focus { left:8px; top:8px; }
.sh { position:sticky; top:0; z-index:60; background:#FFFFFF;
      border-bottom:1px solid var(--sh-line); }
.sh-wrap { max-width:var(--sh-max); margin:0 auto; padding:0 24px; display:flex;
  align-items:center; justify-content:space-between; gap:20px; min-height:76px; }
.sh-marque { display:flex; align-items:center; gap:12px; text-decoration:none;
  color:var(--sh-ink); flex:0 0 auto; }
.sh-marque svg { display:block; flex:0 0 auto; }
.sh-nom { font-family:var(--sh-display); font-weight:600; font-size:16px;
  letter-spacing:.015em; line-height:1.15; max-width:9.5em; }
.sh-nav { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.sh-nav a { font-family:var(--sh-display); font-size:13.5px; font-weight:500;
  color:var(--sh-ink); text-decoration:none; padding:8px 10px;
  border-bottom:2px solid transparent; white-space:nowrap; }
.sh-nav a:hover { color:var(--sh-accent); }
.sh-nav a.sh-actif { border-bottom-color:var(--sh-accent); color:var(--sh-accent); }
/* Le rectangle bordeaux de la barre de navigation. Il revenait à
   l'onglet Services ; il revient désormais à la prise de rendez-vous,
   qui est la seule action que le site demande au visiteur. Services
   redevient un onglet comme les autres. */
.sh-nav a.sh-rdv { background:var(--sh-accent); color:#FFFFFF; padding:8px 15px;
  margin-left:6px; border-bottom:none; }
.sh-nav a.sh-rdv:hover { background:#6B2733; color:#FFFFFF; }
.sh-bascule { position:absolute; opacity:0; pointer-events:none; }
.sh-bouton { display:none; width:40px; height:34px; cursor:pointer;
  flex-direction:column; justify-content:center; gap:5px; padding:6px; }
.sh-bouton span { display:block; height:1.5px; background:var(--sh-ink); border-radius:2px; }
.sh-bascule:focus-visible + .sh-bouton { outline:2px solid var(--sh-accent); outline-offset:2px; }
/* Entre 961 et 1100 px, la barre tient encore sur une ligne, mais tout
   juste : le bouton « Prendre rendez-vous » est plus long que l'onglet
   Contact qu'il remplace, et la rangée passait à deux lignes. On
   resserre les onglets sur cette plage plutôt que de raccourcir le
   libellé du bouton, qui doit rester explicite. */
@media (min-width:961px) and (max-width:1100px) {
  .sh-wrap { gap:12px; padding:0 18px; }
  .sh-nom { font-size:15px; }
  .sh-nav a { padding:8px 7px; font-size:13px; }
  .sh-nav a.sh-rdv { padding:8px 12px; margin-left:4px; }
}
@media (max-width:960px) {
  .sh-wrap { flex-wrap:wrap; min-height:66px; }
  .sh-bouton { display:flex; }
  .sh-nav { display:none; width:100%; flex-direction:column; align-items:stretch;
            gap:0; padding-bottom:10px; }
  .sh-bascule:checked ~ .sh-nav { display:flex; }
  .sh-nav a { padding:13px 4px; border-bottom:1px solid var(--sh-line);
              font-size:15px; white-space:normal; }
  .sh-nav a.sh-actif { border-bottom-color:var(--sh-line); }
  .sh-nav a.sh-rdv { margin:10px 0 0; text-align:center; padding:13px 15px; }
}
@media (max-width:400px) { .sh-wrap { padding:0 16px; } .sh-nom { font-size:14.5px; max-width:8em; } }

.fp-form { margin:0; }
.fp-form p { margin:0 0 18px; }
.fp-form label { display:block; font-family:var(--sh-display); font-size:13px;
  font-weight:500; margin-bottom:7px; color:var(--sh-ink); }
.fp-form input[type=text], .fp-form input[type=email], .fp-form input[type=tel],
.fp-form textarea { width:100%; box-sizing:border-box;
  font-family:'Poppins',Helvetica,Arial,sans-serif; font-size:15px;
  color:var(--sh-ink); background:#FFFFFF; border:1px solid rgba(0,0,0,.22);
  border-radius:0; padding:12px 14px; line-height:1.5; }
.fp-form textarea { resize:vertical; min-height:150px; }
.fp-form input:focus, .fp-form textarea:focus { outline:none;
  border-color:var(--sh-accent); box-shadow:0 0 0 3px rgba(122,46,59,.12); }
.fp-form-duo { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
@media (max-width:620px) { .fp-form-duo { grid-template-columns:1fr; } }
.fp-form-pot { position:absolute; left:-9999px; }
.fp-form button.fp-btn { font:inherit; cursor:pointer; border:none;
  font-family:var(--sh-display); }

/* Le bloc de contact direct, sous le bouton de prise de rendez-vous.
   Les reprises de la carte d’offre sur fond bordeaux sont dans la
   feuille principale (section 17) : les dupliquer ici les écrasait. */
.fp-band--wine .fp-contact-direct a { color:#FFFFFF; }
