   /* ---------- Base ---------- */
    :root {
      --orange: #e8591e;
      --gris: #4a5d6a;
      --gris-clair: #f4f6f8;
      --texte: #2b3640;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }

    html { scroll-behavior: smooth; }

    body {
      font-family: "Segoe UI", Roboto, Arial, sans-serif;
      color: var(--texte);
      line-height: 1.6;
      padding-top: 110px; /* hauteur du header au départ */
    }

    section {
      padding: 90px 8% 70px;
      /* compense le header fixe lors du clic sur le menu */
      scroll-margin-top: 70px;
      position: relative;
      isolation: isolate; /* garde le filigrane derrière le contenu */
    }

    /* ---------- Filigrane en fond de chaque section ----------
       L'image de chaque section est définie par la variable --image-fond
       (voir plus bas). La couche blanche (rgba) donne l'effet "filigrane" :
       augmentez la dernière valeur (0.88) pour un filigrane plus discret,
       diminuez-la pour une image plus visible. */
    section::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background-image:
        linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)),
        var(--image-fond);
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    }

    /* Images fictives : à remplacer par vos vraies images,
       par exemple : url("images/presentation.jpg") */
    #introduction { --image-fond: url("introduction.png"); }
	#presentation { --image-fond: url("presentation.png"); }
    #solutions    { --image-fond: url("solutions.png"); }
    #partenaires  { --image-fond: url("partenaires.png"); }
    #tarifs       { --image-fond: url("tarifs.png"); }
    #contact      { --image-fond: url("contact.png"); }

    h2 {
      font-size: 2rem;
      color: var(--gris);
      margin-bottom: 30px;
      position: relative;
      padding-bottom: 12px;
    }
    h2::after {
      content: "";
      position: absolute;
      left: 0; bottom: 0;
      width: 70px; height: 4px;
      background: var(--orange);
      border-radius: 2px;
    }

    /* ---------- Header / menu ---------- */
    header {
      position: fixed;
      top: 0; left: 0;
      width: 100%;
      height: 110px;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 5%;
      z-index: 1000;
      transition: height 0.3s ease, box-shadow 0.3s ease;
    }

    header img {
      height: 120px;
      width: auto;
      transition: height 0.3s ease;
    }

    nav ul {
      list-style: none;
      display: flex;
      gap: 30px;
    }

    nav a {
      text-decoration: none;
      color: var(--gris);
      font-weight: 600;
      padding: 8px 4px;
      border-bottom: 3px solid transparent;
      transition: color 0.2s, border-color 0.2s;
    }
    nav a:hover {
      color: var(--orange);
      border-bottom-color: var(--orange);
    }

    /* État "rétréci" ajouté par le script au défilement */
    header.reduit {
      height: 60px;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    }
    header.reduit img { height: 80px; }

	/* ---------- Introduction ---------- */
	#introduction {
	  padding-top: 70px;
	  padding-bottom: 60px;
	}
	#introduction h1 {
	  font-size: 3rem;
	  color: var(--orange);
	  margin-bottom: 25px;
	  line-height: 1.2;
	}
	#introduction p {
	  max-width: 100%;
	  font-size: 1.15rem;
	  margin-bottom: 16px;
	}
	#introduction .accroche {
	  font-size: 1.3rem;
	  font-weight: 600;
	  color: var(--gris);
}
    /* ---------- Présentation ---------- */
    #presentation h3 {
      color: var(--gris);
      margin: 22px 0 8px;
    }
    #presentation p {
      max-width: 100%;
      font-size: 1.1rem;
      margin-bottom: 16px;
    }

    /* ---------- Solutions ---------- */
    .cartes {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 25px;
    }
    .carte {
      background: #fff;
      padding: 28px;
      border-radius: 10px;
      border-top: 4px solid var(--orange);
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
      transition: transform 0.2s;
    }
    .carte:hover { transform: translateY(-5px); }
    .carte h3 { color: var(--gris); margin-bottom: 10px; }

    /* ---------- Partenaires ---------- */
    .logos {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
      gap: 25px;
    }
    .logo-partenaire {
      width: 200px;
	  height: 100px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #fff;
      border-radius: 10px;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--gris);
      letter-spacing: 1px;
    }

	.logo-partenaire img {
	  max-width: 95%;
	  max-height: 95%;
	  object-fit: contain;
	}

     /* ---------- Tarifs ---------- */
    #tarifs .intro {
      max-width: 100%;
      font-size: 1.15rem;
      font-style: italic;
      margin-bottom: 30px;
    }
    #tarifs h3 {
      color: var(--gris);
      margin: 30px 0 10px;
    }
    #tarifs p {
      max-width: 100%;
      font-size: 1.1rem;
      margin-bottom: 14px;
    }

    /* Encadré du tarif de base */
    .tarif-base {
      display: inline-block;
      background: #fff;
      border: 3px solid var(--orange);
      border-radius: 10px;
      padding: 22px 32px;
      text-align: center;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
      margin: 10px 0 20px;
    }
    .tarif-base .prix {
      font-size: 2.2rem;
      font-weight: 800;
      color: var(--orange);
      margin-bottom: 5px;
    }
    .tarif-base .prix small {
      font-size: 1rem;
      color: var(--gris);
      font-weight: 400;
    }
    .tarif-base .equiv { color: var(--gris); font-weight: 600; }

    /* Tableau des paliers */
    .paliers {
      border-collapse: collapse;
      background: #fff;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
      margin: 10px 0 20px;
      min-width: 320px;
    }
    .paliers th, .paliers td {
      padding: 12px 24px;
      text-align: left;
    }
    .paliers th {
      background: var(--gris);
      color: #fff;
    }
    .paliers td:last-child {
      font-weight: 700;
      color: var(--orange);
    }
    .paliers tr:nth-child(even) td { background: var(--gris-clair); }

    /* ---------- Contact ---------- */
    #contact address {
      font-style: normal;
      font-size: 1.1rem;
      line-height: 2;
    }
    #contact strong { color: var(--orange); }
	
	    /* Mise en page contact + horaires côte à côte */
    .contact-grille {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 30px;
      max-width: 900px;
    }
    .contact-bloc {
      background: #fff;
      border-radius: 10px;
      border-top: 4px solid var(--orange);
      padding: 28px;
      box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
    }
    .contact-bloc h3 {
      color: var(--gris);
      margin-bottom: 12px;
    }

    /* Tableau des horaires */
    .horaires {
      border-collapse: collapse;
      width: 100%;
      font-size: 1.05rem;
    }
    .horaires td {
      padding: 8px 0;
      border-bottom: 1px solid #eee;
    }
    .horaires tr:last-child td { border-bottom: none; }
    .horaires td:last-child {
      text-align: right;
      font-weight: 600;
    }
    .horaires .ferme td:last-child {
      color: var(--orange);
    }
    .horaires-note {
      margin-top: 12px;
      font-size: 0.9rem;
      color: var(--gris);
    }

    /* ---------- Pied de page ---------- */
    footer {
      background: var(--gris);
      color: #fff;
      text-align: center;
      padding: 20px;
      font-size: 0.9rem;
    }

    /* ---------- Mobile ---------- */
    @media (max-width: 700px) {
      header { flex-direction: column; justify-content: center; height: 120px; }
      header.reduit { height: 80px; }
      header img { height: 55px; }
      header.reduit img { height: 32px; }
      nav ul { gap: 14px; font-size: 0.9rem; }
      body { padding-top: 120px; }
      section { scroll-margin-top: 80px; }
    }