@charset "UTF-8";
/**  VARIABLES **/
body {
  margin: 0;
  padding: 0;
  background-color: #e9f3f6;
  color: #50535e;
  font-size: 1.2rem;
  line-height: 1.1;
  min-width: 420px;
  min-height: auto;
}

/* Défini largeur maximum de la page */
.conteneur {
  max-width: 1600px;
  width: 90%;
  margin: 0 auto;
  padding: 0 auto;
  text-align: center;
}

/*Permet de positionner des elements un à coté de l'autre*/
.conteneur-flex {
  margin: 0 auto;
  padding: 10px;
  display: flex;
  justify-content: center;
}

/*Permet de positionner des elements un à coté de l'autre*/
.conteneur-block {
  margin: 0 auto;
  padding: 10px;
  display: block;
  justify-content: center;
}

/*Permet de positionner des elements dans une grille*/
.conteneur-grid {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  justify-content: center;
  text-align: center;
}

.col-5 {
  width: 5%;
  min-width: 50px;
}

.col-10 {
  width: 10%;
  min-width: 200px;
}

.col-33 {
  width: 33%;
}

.col-85 {
  width: 85%;
}

.col-90 {
  width: 90%;
}

.col {
  width: 100%;
}

/*Modifie l'affichage du header, main et footer*/
header {
  position: sticky;
  top: 0;
  background-color: #00243f;
  color: #e9f3f6;
  padding-left: 20px;
}
header img {
  width: 100px;
  margin: auto;
}
header .col-5,
header .col-10,
header .col-85 {
  margin: auto;
}

main {
  margin-top: 20px;
  margin-bottom: 100px;
  padding: 0;
}
main img {
  display: block;
  margin: auto;
  width: 100%;
}
main .img-petit {
  display: inline;
  margin: 0;
  width: 20px;
}

footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  color: #e9f3f6;
  font-size: 0.8rem;
  background-color: #00243f;
  margin-top: 20px;
  padding: 5px;
}
footer img {
  width: 30px;
  margin: 5px;
}
footer p {
  margin: 0;
}
footer div {
  margin: auto;
}
footer a {
  color: #e9f3f6;
}
footer a:hover {
  color: #50535e;
}
footer .container-flex {
  padding: 0;
}

a {
  text-decoration: none;
}

.vert {
  background-color: #014c04;
  color: #eae5df;
}

.orange {
  background-color: #d9531a;
  color: #eae5df;
}

.rouge {
  background-color: #fb0602;
  color: #eae5df;
}

.btn-espace {
  margin: 20px;
}

.top-image {
  max-height: 100px;
}

.top-logo {
  width: 50%;
  max-width: 150px;
}

.top-carte {
  width: 50%;
  max-width: 250px;
}

hr {
  width: 90%;
  align-items: center;
}

/*Affiche la barre de navigation*/
nav {
  font-size: 1rem;
  width: -moz-max-content;
  width: max-content;
}
nav ul {
  padding: 0;
}
nav li {
  display: inline-block;
}
nav a {
  display: inline-block;
  padding: 5px 10px;
}
nav .btn {
  width: 150px;
}

/*Donne du style au boutons*/
.btn {
  background-color: #00243f;
  border: #00243f;
  border: 1px solid;
  color: #e9f3f6;
  border-radius: 10px;
  padding: 10px;
  margin: 0;
  text-decoration: none;
  text-align: center;
  font-size: 1rem;
}
.btn:hover {
  background-color: #e9f3f6;
  color: #606164;
}

/*formulaire*/
.input-control {
  display: flex;
  flex-direction: column;
}

.input-control input,
textarea {
  border: 2px solid #f0f0f0;
  border-radius: 4px;
  display: block;
  font-size: 12px;
  padding: 10px;
  width: 90%;
  margin: auto;
}

.input-control input:focus,
textarea:focus {
  outline: 0;
}

.input-control.success input {
  border-color: #09c372;
}

.input-control.error input {
  border-color: #ff3860;
}

.input-control.success textarea {
  border-color: #09c372;
}

.input-control.error textarea {
  border-color: #ff3860;
}

.input-control .error {
  color: #ff3860;
  font-size: 9px;
  height: 13px;
}

/*Spin du formulaire*/
@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.spinner {
  border: 4px solid rgba(0, 0, 0, 0.2);
  border-top: 4px solid #333;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
}

/*Positionne le texte*/
.texte-gauche {
  text-align: left;
}

.texte-droite {
  text-align: right;
}

.texte-petit {
  font-size: 0.8rem;
}

.texte-centre {
  text-align: center;
  margin: auto;
}

.pb {
  padding-bottom: 10px;
}

/*Modifie le style du texte*/
h1,
h2,
h3,
h5 {
  margin: 0;
  padding: 0;
}

h4 {
  margin-bottom: 0;
}

/*carte*/
.carte {
  margin: 10px;
  border: 1px solid #00243f;
  padding: 5px;
  border-radius: 8px;
  background-color: #00243f;
  text-align: left;
  align-content: center;
  min-height: -moz-max-content;
  min-height: max-content;
  display: flex;
  flex-direction: column;
}
.carte h2, .carte h3 {
  color: #e9f3f6;
  margin-left: 10px;
}
.carte img {
  border-radius: 8px;
}

.carte-int {
  background-color: #e9f3f6;
  margin: 0;
  padding: 10px;
  border-radius: 8px;
  align-items: center;
  min-height: -moz-max-content;
  min-height: max-content;
  flex-grow: 1;
}
.carte-int h2 {
  color: #50535e;
}
.carte-int h3 {
  margin: 0;
  margin-top: 5px;
  padding: 0;
}

.img-petit {
  width: 150px;
  height: 150px;
}

.horaire .container-grid {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
  justify-content: center;
  text-align: center;
}
.horaire .container-grid-col {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  text-align: center;
}
.horaire p {
  margin: 0;
  padding: 0;
}
.horaire .background {
  display: block;
  background-color: #434242;
  color: #e9f3f6;
  max-height: -moz-fit-content;
  max-height: fit-content;
}

.cadre {
  border: #01154e solid 2px;
  border-radius: 5px;
  margin: 5px;
}

.mx-auto {
  margin: auto;
}

.mt {
  margin-top: 30px;
}

.mb {
  margin-bottom: 10px;
}

.p {
  min-height: 43px;
}

.no-bullets {
  list-style-type: none;
}

/* caroussel */
.carousel-conteneur {
  width: 100%;
  max-width: 1024px;
  margin: auto;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 0 10px #ccc;
  position: relative;
}

.carousel-track {
  display: flex;
  transition: transform 0.5s ease;
}

.carousel-slide {
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f3f3f3;
}

.carousel-boutons {
  position: absolute;
  top: 50%;
  width: 100%;
  display: flex;
  justify-content: space-between;
  transform: translateY(-50%);
}

.carousel-boutons button {
  background-color: rgba(0, 0, 0, 0.5);
  border: none;
  color: white;
  font-size: 2em;
  padding: 0.3em 0.6em;
  cursor: pointer;
}

/*pour ecran de 980px et moins*/
@media screen and (max-width: 980px) {
  .container-grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* Pour ecran de 768px et moins */
@media (max-width: 768px) {
  .carte-int {
    padding: 1em;
    font-size: 1.1em;
  }
  input,
  a,
  select,
  button {
    font-size: 1.2em;
    padding: 0.75em;
    margin: 5px;
    width: 100%;
    margin-bottom: 1em;
    box-sizing: border-box;
  }
  .conteneur-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
  }
  .conteneur-grid img {
    max-width: 100%;
    border-radius: 8px;
  }
  table {
    font-size: 1em;
    width: 100%;
    border-collapse: collapse;
  }
  table td, table th {
    padding: 0.5em;
  }
  nav ul {
    grid-template-columns: 1fr 1fr 1fr;
    justify-content: center;
    text-align: center;
  }
  nav a {
    display: inline-block;
    padding: 0;
  }
  nav .btn {
    width: 120px;
  }
  .btn, button {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2em;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 75px;
  }
  .wagons {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    list-style: none;
  }
}/*# sourceMappingURL=style.css.map */

/* ---- Impression seulement ---- */
@media print {
  /* On force les sections sur des pages distinctes */
  #page-cycle { page: cycle; break-after: page; }
  #page-statpak { page: statpak; }

  /* Orientation par page (Chromium/Edge/Chrome modernes) */
  @page cycle   { size: A4 landscape; margin: 10mm; }
  @page statpak { size: A4 portrait;  margin: 10mm; }

  /* Nettoyage visuel pour l'impression */
  .no-print, nav, .btn, .actions, footer { display: none !important; }
  table { page-break-inside: avoid; }
  h2, h3 { page-break-after: avoid; }

  /* ---------- Fallback si les pages nommées ne sont pas supportées ----------
     -> On simule le "landscape" en faisant pivoter la 1re section */
  @supports not (page: cycle) {
    #page-cycle {
      transform: rotate(90deg) translateY(-100%);
      transform-origin: left top;
      /* occuper toute la page portrait après rotation */
      width: 100vh;   /* hauteur de la page devient la largeur du contenu */
      height: 100vw;  /* largeur de la page devient la hauteur du contenu */
      overflow: hidden;
      break-after: page;
    }
    /* Évite que le body coupe après la rotation */
    html, body { height: auto; }
  }
}

@media print {
    #graphiqueLot { max-height: 160mm !important; }
    #page-statpak canvas { max-height: 230mm !important; }
  /* Empêche la coupe à l’intérieur des sections de page */
  #page-cycle,
  #page-statpak {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Titre + graphique doivent rester ensemble */
  #page-cycle h3,
  #page-statpak h3 {
    break-after: avoid;
    page-break-after: avoid;        /* compat anciens navigateurs */
  }
  #graphiqueLot,
  .chart-wrap,
  #page-cycle canvas,
  #page-statpak canvas {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Optionnel : réduire les marges internes pour éviter de pousser le canvas sur la page suivante */
  #page-cycle,
  #page-statpak {
    padding: 4mm 0;
  }

  /* Si un navigateur ignore les pages nommées (fallback rotation) */
  @supports not (page: cycle) {
    #page-cycle {
      break-inside: avoid;
      page-break-inside: avoid;
      /* garder le titre collé au canvas même en rotation */
    }
  }
}