img,
video,
iframe,
.lecteur-pdf iframe {
  max-width: 100%;
}

.typography img,
#apropos-scene img,
.card-category-2 img,
.card-category-3 img {
  height: auto;
}

.typography table,
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.typography .btn,
#candidature .btn,
#candidature button[type="submit"],
.typography a.buttonstyle {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  min-height: 48px;
  line-height: 1.3;
}

.typography a[href$=".pdf"],
.typography a[href$=".docx"],
.typography a[href$=".doc"],
figcaption a[href$=".pdf"],
figcaption a[href$=".docx"],
a.doc-download {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  margin: 14px 0;
  padding: 14px 18px;
  background: #f7e967;
  color: #042103 !important;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none !important;
  border: 2px solid #042103;
  border-radius: 14px;
  box-shadow: 0 8px 0 #042103;
  box-sizing: border-box;
}

.typography a[href$=".pdf"]::before,
.typography a[href$=".docx"]::before,
.typography a[href$=".doc"]::before,
figcaption a[href$=".pdf"]::before,
figcaption a[href$=".docx"]::before,
a.doc-download::before {
  content: "PDF";
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  padding: 0 6px;
  border-radius: 10px;
  background: #042103;
  color: #f7e967;
  font-size: .72rem;
  letter-spacing: .04em;
}

.typography a[href$=".docx"]::before,
.typography a[href$=".doc"]::before {
  content: "DOC";
}

.typography a[href$=".pdf"]:hover,
.typography a[href$=".docx"]:hover,
.typography a[href$=".doc"]:hover,
figcaption a[href$=".pdf"]:hover,
figcaption a[href$=".docx"]:hover,
a.doc-download:hover {
  background: #fff;
  transform: translateY(2px);
  box-shadow: 0 4px 0 #042103;
}

#apropos-scene .hero h2,
#apropos-scene .pilier h3,
#apropos-scene .espace h3,
.typography h2,
.typography h3 {
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .social {
    top: auto !important;
    right: 0 !important;
    bottom: 14px !important;
    left: 0 !important;
    height: auto !important;
    z-index: 40;
    display: flex !important;
    justify-content: center;
    pointer-events: none;
  }

  .social ul {
    pointer-events: auto;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    padding: 8px 14px !important;
    list-style: none;
    transform: none !important;
    background: #fff;
    border: 2px solid #042103;
    border-radius: 999px;
    box-shadow: 0 8px 0 #042103;
  }

  .social ul li,
  .social ul li:hover {
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    text-align: center;
    transform: none !important;
    transition: none !important;
  }

  .social ul li a,
  .social ul li:hover a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-size: 0 !important;
    line-height: 0 !important;
    color: #fff !important;
    text-decoration: none !important;
  }

  .social ul li i,
  .social ul li:hover i {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    font-size: 18px !important;
    line-height: 1 !important;
    background: transparent !important;
    color: #fff !important;
    border-radius: 0 !important;
    transform: none !important;
    transition: none !important;
  }

  body {
    padding-bottom: 88px;
  }

  div.headerimages,
  div.headerimages div.headerimage {
    height: 32vh;
    min-height: 180px;
    min-width: 0;
  }

  #apropos-scene .hero,
  #maisons-scene .hero,
  #maisons-scene .maisons,
  #maisons-scene .apports,
  #cned-scene .hero,
  #cned-scene .repere,
  #cned-scene .niveaux,
  #cned-scene .duo,
  #cned-scene .frais,
  #cned-scene .docs,
  #cis-scene .hero,
  #cis-scene .statuts,
  #cis-scene .regards,
  #cis-scene .etapes {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }

  #cis-scene .hero-copy { padding: 28px 20px !important; }
  #cis-scene .hero img { max-height: 240px; width: 100%; }
  #cis-scene .cta { width: 100%; justify-content: center; }

  #cned-scene .hero-copy { padding: 28px 20px !important; }
  #cned-scene .hero img { max-height: 240px; width: 100%; }
  #cned-scene .cta { width: 100%; justify-content: center; }

  #maisons-scene .hero-copy { padding: 28px 20px !important; }
  #maisons-scene .hero img { max-height: 240px; width: 100%; }

  #apropos-scene .hero-copy {
    padding: 28px 20px !important;
  }

  #apropos-scene .hero img,
  #apropos-scene .mosaic img {
    max-height: 260px;
    width: 100%;
  }

  #apropos-scene .chiffres,
  #apropos-scene .piliers,
  #apropos-scene .mosaic,
  #apropos-scene .outils,
  #apropos-scene .suite,
  #apropos-scene .espaces {
    grid-template-columns: 1fr !important;
    margin-top: 16px !important;
    padding: 0 !important;
  }

  #apropos-scene .chiffres {
    margin-top: 16px !important;
  }

  #apropos-scene .suite a {
    min-height: 96px !important;
  }

  .basic-card,
  .card-category-2 > a,
  .card-category-2 .basic-card {
    width: min(100%, 420px);
    max-width: 100%;
  }

  .card-category-2 > a {
    display: block;
  }

  .typography .btn,
  #candidature .btn,
  #candidature button[type="submit"],
  .typography a[href$=".pdf"],
  .typography a[href$=".docx"],
  .typography a[href$=".doc"],
  figcaption a[href$=".pdf"],
  figcaption a[href$=".docx"] {
    width: 100%;
    justify-content: flex-start;
  }

  .container,
  .welcomelimit,
  .contentextend {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 520px) {
  #apropos-scene .espace {
    grid-template-columns: 56px 1fr !important;
  }

  #apropos-scene .hero h2 {
    font-size: 1.85rem !important;
  }

  .basic-card .card-content {
    padding: 22px 18px;
  }

  .basic-card .card-title {
    font-size: 1.25rem;
  }
}
