@charset "UTF-8";
/* HomeCristal : mise en page des pages de prestation (piliers SEO).
   S'ajoute a css/site.css, dont elle reprend les variables et les composants
   (en-tete, cartes de prix, FAQ, pied de page, pastilles mobiles). */

.page-seo main { padding-top:77px; }                       /* hauteur de l'en-tete fixe */

/* Fil d'Ariane */
/* nav.ariane : annule les regles generiques « nav » de site.css (faites pour l'en-tete) */
.page-seo nav.ariane { position:static; display:block; max-width:1296px; margin:0 auto; padding:18px 48px 0; height:auto;
  background:none !important; border:0; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  font-size:12.5px; color:var(--gris) !important; }
.ariane ol { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.ariane li { display:inline-flex; align-items:center; gap:6px; }
.ariane li + li::before { content:'›'; color:var(--gris); }
.ariane a { color:var(--gris) !important; text-decoration:none; }
.ariane a:hover { color:var(--blue) !important; }
.ariane [aria-current] { color:var(--noir) !important; font-weight:600; }

/* En-tete de page : texte a gauche, preuve en photo a droite.
   1296 px = 1200 px de contenu + marges : le texte s'aligne sur celui des sections. */
.ps-hero { max-width:1296px; margin:0 auto; padding:22px 48px 48px; display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:48px; align-items:center; }
/* sans photo : une colonne, les quatre reperes sur une ligne (pas de vide a droite) */
.ps-hero.ps-seul { grid-template-columns:minmax(0,1fr); }
.ps-seul .ps-lead { max-width:760px; }
.ps-seul .ps-faits { grid-template-columns:repeat(4,minmax(0,1fr)); max-width:none; }
.ps-hero h1 { font-size:clamp(30px,4.2vw,50px); font-weight:800; letter-spacing:-.025em; line-height:1.06;
  color:var(--noir) !important; margin:10px 0 16px; }
.ps-lead { font-size:16.5px; line-height:1.7; color:var(--gris) !important; margin:0 0 22px; max-width:560px; }
.ps-lead strong { color:var(--noir) !important; }
.ps-faits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 24px; padding:0; list-style:none; max-width:560px; }
.ps-faits li { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:12px;
  background:var(--blanc) !important; border:1px solid var(--hairline); font-size:13.5px; line-height:1.4; color:var(--texte) !important; }
.ps-faits li .picto { color:var(--f-accent, var(--blue)); margin-top:1px; }
.ps-faits strong { display:block; font-size:15px; color:var(--noir) !important; }
.ps-actions { display:flex; gap:10px; flex-wrap:wrap; max-width:560px; }
.ps-actions .f-cta2 { flex:1 1 auto; padding:15px 18px; font-size:14.5px; }
.ps-actions .f-cta-resa { flex:2 1 auto; }

/* Preuve : comparateur avant / apres */
.ps-preuve { margin:0; }
.ps-compare { position:relative; aspect-ratio:4/3; border-radius:20px; overflow:hidden; box-shadow:var(--shadow-lg);
  user-select:none; -webkit-user-select:none; touch-action:pan-y; }
.ps-compare .ps-av, .ps-compare .ps-ap { position:absolute; inset:0; background-size:cover; background-position:center; }
.ps-compare .ps-ap { clip-path:inset(0 0 0 50%); }
.ps-compare .ps-lbl { position:absolute; bottom:12px; z-index:3; font-size:10.5px; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:#fff !important; padding:5px 10px; border-radius:8px; }
.ps-compare .ps-lbl-av { left:12px; background:rgba(22,19,17,.55); }
.ps-compare .ps-lbl-ap { right:12px; background:var(--f-accent, var(--blue)); }
.ps-compare .ps-poignee { position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; z-index:4;
  transform:translateX(-50%); box-shadow:0 0 10px rgba(0,0,0,.35); }
.ps-compare .ps-rond { position:absolute; top:50%; left:50%; width:42px; height:42px; transform:translate(-50%,-50%);
  border-radius:50%; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.28); display:flex; align-items:center;
  justify-content:center; cursor:ew-resize; touch-action:none; }
.ps-compare .ps-rond img { width:22px; height:22px; pointer-events:none; }
.ps-preuve figcaption { font-size:12.5px; color:var(--gris) !important; margin-top:10px; text-align:center; }

/* Sections de contenu */
.ps-sec { padding:56px 48px; }
.ps-sec.ps-fond { background:var(--fond) !important; }
.ps-sec .section-wrap > .reveal:first-child { margin-bottom:22px; }
.ps-sec .section-h2 { margin-bottom:10px; }
.ps-intro { font-size:15.5px; line-height:1.7; color:var(--gris) !important; max-width:720px; margin:0; }

/* Sections libres (pages sujets et pages speciales) */
.ps-texte { max-width:760px; }
.ps-texte p { font-size:15.5px; line-height:1.75; color:var(--texte) !important; margin:0; }
.ps-texte p + p { margin-top:12px; }
.ps-texte a, .ps-bloc a, .ps-liste a, .faq-a a { color:var(--blue) !important; font-weight:700; }
.ps-liste { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; }
.ps-liste li { position:relative; padding:14px 16px 14px 44px; border-radius:14px; background:var(--blanc) !important;
  border:1px solid var(--hairline); font-size:14.5px; line-height:1.55; color:var(--texte) !important; }
.ps-liste li::before { content:''; position:absolute; left:18px; top:19px; width:12px; height:6px;
  border-left:2px solid var(--f-accent, var(--blue)); border-bottom:2px solid var(--f-accent, var(--blue)); transform:rotate(-45deg); }
.ps-table-wrap { max-width:760px; overflow-x:auto; border-radius:16px; border:1px solid var(--hairline); background:var(--blanc) !important; }
.ps-table { width:100%; border-collapse:collapse; font-size:14.5px; }
.ps-table th, .ps-table td { padding:13px 18px; text-align:left; vertical-align:top; border-top:1px solid var(--hairline); }
.ps-table thead th { border-top:0; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--gris) !important; }
.ps-table tbody th { font-weight:500; color:var(--texte) !important; line-height:1.5; }
.ps-table td { font-weight:800; color:var(--f-accent, var(--blue)) !important; white-space:nowrap; text-align:right; }
.ps-table thead th:last-child { text-align:right; }
.ps-galerie { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ps-galerie + .ps-videos { margin-top:24px; }
.ps-videos { display:grid; grid-template-columns:repeat(3,minmax(0,220px)); gap:18px; }
.ps-vid { margin:0; }
.ps-vid video { display:block; width:100%; aspect-ratio:406/720; object-fit:cover; border-radius:16px; background:#111; box-shadow:var(--shadow); }
.ps-vid figcaption { font-size:12.5px; line-height:1.45; color:var(--gris) !important; margin-top:8px; text-align:center; }
.ps-cartes { margin:0 !important; }

/* Tarifs : la carte de l'accueil, seule, avec un rappel a cote */
.ps-tarifs { display:grid; grid-template-columns:minmax(0,440px) minmax(0,1fr); gap:32px; align-items:start; }
.ps-tarifs > .reveal { display:flex; }
.ps-tarifs .formule-card { flex:1; }
.ps-notes { display:flex; flex-direction:column; gap:12px; }
.ps-note { padding:16px 18px; border-radius:14px; background:var(--blanc) !important; border:1px solid var(--hairline);
  font-size:14px; line-height:1.6; color:var(--texte) !important; }
.ps-note strong { color:var(--noir) !important; }
.ps-note a { color:var(--blue) !important; font-weight:700; }

/* Etapes de la methode */
.ps-etapes { list-style:none; counter-reset:etape; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0; padding:0; }
.ps-etapes li { counter-increment:etape; position:relative; padding:20px 18px 18px; border-radius:16px;
  background:var(--blanc) !important; border:1px solid var(--hairline); box-shadow:var(--shadow-sm); }
.ps-etapes li::before { content:counter(etape); display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%; background:var(--f-accent, var(--blue)); color:#fff; font-weight:800; font-size:13px; margin-bottom:10px; }
.ps-etapes h3 { font-size:15.5px; font-weight:800; color:var(--noir) !important; margin:0 0 6px; }
.ps-etapes p { font-size:13.5px; line-height:1.6; color:var(--gris) !important; margin:0; }

/* Deux colonnes de texte (matieres, preparation...) */
.ps-cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ps-bloc { padding:20px 20px 18px; border-radius:16px; background:var(--blanc) !important; border:1px solid var(--hairline); }
.ps-bloc h3 { display:flex; align-items:center; gap:8px; font-size:16px; font-weight:800; color:var(--noir) !important; margin:0 0 8px; }
.ps-bloc h3 .picto { color:var(--f-accent, var(--blue)); }
.ps-bloc p, .ps-bloc li { font-size:14px; line-height:1.65; color:var(--gris) !important; margin:0; }
.ps-bloc ul { margin:0; padding-left:18px; }
.ps-bloc li + li { margin-top:4px; }

/* Video de preuve */
.ps-video { display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:28px; align-items:center; }
.ps-video video { width:100%; aspect-ratio:406/720; object-fit:cover; border-radius:18px; background:#111; box-shadow:var(--shadow-lg); }

/* Zone et autres prestations */
.ps-communes { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; padding:0; list-style:none; }
.ps-communes li { padding:6px 12px; border-radius:999px; background:var(--blanc) !important; border:1px solid var(--hairline);
  font-size:13px; color:var(--texte) !important; }
.ps-liens { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.ps-lien { display:flex; align-items:center; gap:12px; padding:16px 18px; border-radius:14px; text-decoration:none !important;
  background:var(--blanc) !important; border:1.5px solid var(--hairline); color:var(--noir) !important; font-weight:700;
  transition:border-color var(--t), transform var(--t); }
.ps-lien .picto { color:var(--blue); }
.ps-lien span { flex:1; }
.ps-lien::after { content:'→'; color:var(--blue); }
@media (hover:hover) and (pointer:fine){ .ps-lien:hover { border-color:var(--blue); transform:translateY(-1px); } }

.page-seo .faq-list { margin-left:0; margin-right:0; }

@media (max-width:1100px){
  .page-seo nav.ariane { padding:16px 32px 0; }
  .ps-hero { padding:20px 32px 40px; gap:32px; }
  .ps-sec { padding:48px 32px; }
  .ps-etapes { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ps-seul .ps-faits { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:760px; }
}
@media (max-width:900px){
  .page-seo main { padding-top:59px; }
  .page-seo nav.ariane { padding:12px 20px 0; }
  .ps-hero { grid-template-columns:1fr; padding:14px 20px 32px; gap:24px; }
  .ps-sec { padding:36px 20px; }
  .ps-tarifs, .ps-cols, .ps-video { grid-template-columns:1fr; gap:14px; }
  .ps-video video { max-width:280px; margin:0 auto; display:block; }
  .ps-faits { gap:8px; }
  .ps-liste, .ps-galerie { grid-template-columns:1fr; gap:8px; }
  .ps-galerie { gap:20px; }
  .ps-videos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .ps-vid video { border-radius:12px; }
  .ps-vid figcaption { font-size:11.5px; margin-top:6px; }
  .ps-liste li { padding:12px 14px 12px 40px; font-size:14px; }
  .ps-liste li::before { left:16px; top:17px; }
  .ps-table th, .ps-table td { padding:11px 14px; font-size:13.5px; }
}
@media (max-width:540px){
  .ps-etapes { grid-template-columns:1fr; }
  .ps-faits li { padding:10px 12px; font-size:13px; }
  .ps-actions .f-cta-resa { flex:1 1 auto; }
  .ps-actions .f-cta-wa { flex:0 0 auto; }
  .ps-actions .f-cta-wa span { display:none; }
}
