/* =================== CORRECTIONS CHARTE SEO-GEO (19/10/2026) =================== */

/* Lien d'evitement : invisible jusqu'au focus clavier. */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 10000;
  padding: 0.75rem 1.25rem;
  background: #154374;
  color: #FFFFFF;
  font-weight: 600;
  border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; }

/* Images : la hauteur suit la largeur quand seules les dimensions HTML sont posees
   (:where = specificite nulle, ne surcharge aucune regle existante). */
:where(img[width][height]) { height: auto; }

/* Source des avis Google sous le carrousel. */
.testi-source {
  margin: 1.5rem 0 0;
  font-size: 0.9rem;
  color: var(--ink-soft, #5A6170);
  text-align: center;
}
.testi-source a { color: var(--accent, #1F589E); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Barre d'appel fixe en bas sur mobile (charte P1). Masquee sur ordinateur. */
.barre-appel { display: none; }
@media (max-width: 768px) {
  .barre-appel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 900;
    padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
    background: #FFFFFF;
    box-shadow: 0 -6px 20px rgba(20, 30, 50, 0.12);
  }
  .barre-appel a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
  }
  .barre-appel-tel { background: #154374; color: #FFFFFF; }
  .barre-appel-devis { background: var(--coral, #DB5A59); color: #FFFFFF; }
  /* Hauteur reservee : la barre ne cache jamais le bas de page. */
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
  /* Le bouton « haut de page » remonte au-dessus de la barre. */
  #toTop, .to-top { bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* Fil d'Ariane des pages de service et des pages simples. */
.fil-ariane {
  font-size: 0.85rem;
  color: var(--ink-soft, #5A6170);
  margin: 0 0 1rem;
}
.fil-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
.fil-ariane li { display: inline-flex; align-items: center; gap: 0.5rem; }
.fil-ariane li + li::before { content: "/"; opacity: 0.45; }
.fil-ariane a { color: inherit; text-decoration: none; display: inline-block; padding: 0.6rem 0; }
.fil-ariane a:hover { color: var(--accent, #1F589E); }
.fil-ariane [aria-current="page"] { color: var(--ink, #1A1F2E); font-weight: 600; }
.date-maj { display: block; margin-top: 0.75rem; font-size: 0.82rem; color: var(--ink-soft, #5A6170); }

/* Pages simples ajoutees (merci, 404, plan du site). */
.page-simple { max-width: 760px; margin: 0 auto; padding: calc(var(--header-h, 80px) + 3rem) 1.5rem 4rem; }
.page-simple h1 { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.1; margin: 0 0 1rem; color: var(--ink, #1A1F2E); }
.page-simple p { font-size: 1.05rem; line-height: 1.6; color: var(--ink-soft, #5A6170); margin: 0 0 1rem; }
.page-simple ul { line-height: 2; padding-left: 1.2rem; }
.page-simple a { color: var(--accent, #1F589E); }
.page-simple .boutons { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.page-simple .boutons a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.4rem; border-radius: 999px; font-weight: 700; text-decoration: none; }
.page-simple .boutons .principal { background: var(--coral, #DB5A59); color: #FFFFFF; }
.page-simple .boutons .secondaire { border: 1.5px solid var(--accent, #1F589E); color: var(--accent, #1F589E); }
