/* AltraJob — patch.css
   À charger APRÈS styles.css. Ne remplace pas styles.css. */

.contactPage #bd #introContent .cn .contactContainer {
  display: grid !important;
  width: 100% !important;
  padding: 0 23px !important;
  box-sizing: border-box !important;
  align-items: start;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  column-gap: 22px !important;
  row-gap: 0 !important;
}

.contactPage #bd #introContent .cn .contactContainer > .object,
.contactPage #bd #introContent .cn .contactContainer > .map.object,
.mobile.contactPage #bd #introContent .cn .contactContainer > .object,
.mobile.contactPage #bd #introContent .cn .contactContainer > .map.object {
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  height: auto !important;
  order: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden;
}

.contactPage #introContent .contactContainer .text,
.contactPage #introContent .contactContainer .map {
  margin-bottom: 0 !important;
}

.contactPage #bd #introContent .cn .contactContainer > .object > .content {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

.contactPage div#bd .contactContainer .object .mapContainer {
  width: 100% !important;
  height: 240px !important;
  position: relative !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.contactPage .contactContainer .mapContainer img,
.contactPage .contactContainer .mapContainer .gm-style img {
  max-width: none !important;
}

.contactPage .contactContainer .text .clr { display: none !important; }

/* DOM : 1 txt Bulle · 2 txt Fribourg · 3 map Bulle · 4 map Fribourg · 5 txt St-Aubin · 6 map St-Aubin */
.contactPage .contactContainer > .object:nth-child(3) { grid-area: 1 / 1 !important; }
.contactPage .contactContainer > .object:nth-child(4) { grid-area: 1 / 2 !important; }
.contactPage .contactContainer > .object:nth-child(6) { grid-area: 1 / 3 !important; }
.contactPage .contactContainer > .object:nth-child(1) { grid-area: 2 / 1 !important; }
.contactPage .contactContainer > .object:nth-child(2) { grid-area: 2 / 2 !important; }
.contactPage .contactContainer > .object:nth-child(5) { grid-area: 2 / 3 !important; }

.contactPage .contactContainer > .map.object {
  border: 1px solid rgba(78, 74, 64, .15) !important;
  border-bottom: 0 !important;
  border-radius: 6px 6px 0 0 !important;
  overflow: hidden !important;
}

.contactPage .contactContainer > .text.object {
  border: 1px solid rgba(78, 74, 64, .15) !important;
  border-top: 0 !important;
  border-radius: 0 0 6px 6px !important;
  background: #fff !important;
  padding: 22px 24px 24px !important;
}

.contactPage .contactContainer .mapContainer iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  pointer-events: none;
}

@media screen and (max-width: 1100px) {
  html,
  body.contactPage {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }

  .contactPage #w0,
  .contactPage #cn,
  .contactPage #bd,
  .contactPage #introContent,
  .contactPage #introContent .cn {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  .contactPage #bd #introContent .cn .contactContainer {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .contactPage .contactContainer > .object:nth-child(3) { grid-area: 1 / 1 !important; margin: 0 !important; }
  .contactPage .contactContainer > .object:nth-child(1) { grid-area: 2 / 1 !important; margin: 0 0 48px !important; }
  .contactPage .contactContainer > .object:nth-child(4) { grid-area: 3 / 1 !important; margin: 0 !important; }
  .contactPage .contactContainer > .object:nth-child(2) { grid-area: 4 / 1 !important; margin: 0 0 48px !important; }
  .contactPage .contactContainer > .object:nth-child(6) { grid-area: 5 / 1 !important; margin: 0 !important; }
  .contactPage .contactContainer > .object:nth-child(5) { grid-area: 6 / 1 !important; margin: 0 !important; }

  .contactPage .contactContainer > .map.object { margin-bottom: 0 !important; }
  .contactPage .contactContainer > .text.object { padding-top: 14px !important; }

  .contactPage div#bd .contactContainer .object .mapContainer {
    height: 260px !important;
    max-width: 100% !important;
    overflow: hidden !important;
    touch-action: none !important;
    overscroll-behavior: none !important;
  }

  .contactPage .contactContainer .mapContainer iframe {
    pointer-events: none !important;
    max-width: 100% !important;
  }
}

@media screen and (max-width: 650px) {
  .contactPage .contactContainer > .text.object { padding: 12px 20px 18px !important; }
  .contactPage .contactContainer > .object:nth-child(1),
  .contactPage .contactContainer > .object:nth-child(2) {
    margin: 0 0 40px !important;
  }
  .contactPage div#bd .contactContainer .object .mapContainer {
    height: 220px !important;
  }
}

/* Footer : Horaires calé sous Agence Fribourg (colonne milieu)
   DOM : 1 Bulle · 2 Fribourg · 3 St-Aubin · 4 Horaires */
#ft #footerContent .footer_bottom {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  column-gap: 46px !important;
  row-gap: 24px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#ft #footerContent .footer_bottom > .object,
#ft #footerContent .cn .footer_bottom > .last.object {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  text-align: left !important;
}

#ft #footerContent .footer_bottom > .object h2,
#ft #footerContent .cn .footer_bottom > .last.object h2 {
  text-align: left !important;
}

#ft #footerContent .footer_bottom > .object:nth-child(1) { grid-column: 1; grid-row: 1; }
#ft #footerContent .footer_bottom > .object:nth-child(2) { grid-column: 2; grid-row: 1; }
#ft #footerContent .footer_bottom > .object:nth-child(3) { grid-column: 3; grid-row: 1; }
#ft #footerContent .footer_bottom > .object:nth-child(4) { grid-column: 2; grid-row: 2; }

@media screen and (max-width: 1100px) {
  #ft #footerContent .footer_bottom {
    grid-template-columns: 1fr !important;
    row-gap: 22px !important;
  }

  /* Même ordre partout : Bulle → Fribourg → St-Aubin → Horaires */
  #ft #footerContent .footer_bottom > .object:nth-child(1) { grid-column: 1; grid-row: 1; }
  #ft #footerContent .footer_bottom > .object:nth-child(2) { grid-column: 1; grid-row: 2; }
  #ft #footerContent .footer_bottom > .object:nth-child(3) { grid-column: 1; grid-row: 3; }
  #ft #footerContent .footer_bottom > .object:nth-child(4) { grid-column: 1; grid-row: 4; }
}