/* Interior page backgrounds mapped from production sections, 2026-09-10. */
body.qsn .container-component { isolation: isolate; }
body.qsn .main-bottom:has(#mod-custom123) { position: relative; }
body.qsn .main-bottom:has(#mod-custom123)::before {
  content: ""; position: absolute; pointer-events: none; z-index: -1;
  top: 0; left: calc(50% - 50vw); width: 100vw; height: 1455px;
  background: url('/images/qsn/vague-bleu-clair-orange-inversee.svg') left top / auto no-repeat;
}
body.qsn #mod-custom126 {
  background-position: left top !important; background-size: auto !important;
}
body.digital .container-component {
  background: url('/images/hp/vague-bleu-clair-orange.svg') center top / 100% auto no-repeat !important;
}
body.formation .container-component,
body.acomp .container-component {
  background: url('/images/accompagnement/deux-vagues-bleues-claire-et-foncee.svg') center top / 100% auto no-repeat !important;
}
body.digital .container-component > .moduletable:has(#mod-custom114),
body.formation .container-component > .moduletable:has(#mod-custom129) {
  box-sizing: border-box; width: 100% !important; height: auto !important;
  max-width: none !important; margin: 0 !important; padding: 288px 5% 180px !important;
  background: url('/images/hp/devis-haut.webp') center top / auto no-repeat,
              url('/images/hp/devis-bas.webp') center bottom / auto no-repeat #4da1f5 !important;
}
body.digital #mod-custom114,
body.formation #mod-custom129 {
  width: 100% !important; height: auto !important; margin: 0 !important;
  padding: 0 !important; background: none !important;
}
body.acomp .container-component > .moduletable:has(#mod-custom127) {
  width: 100% !important; height: auto !important; margin: 0 !important;
  padding: 723px 5% 54px !important; transform: none !important;
  background: url('/images/hp/vagues-et-photo-groupe-de-personnes-en-formation.webp') left top / auto no-repeat !important;
}
body.acomp #mod-custom127 { width:100% !important; height:auto !important; padding:0 !important; margin:0 !important; }
body.digital .container-component,body.formation .container-component,body.acomp .container-component { height:auto !important; }

/* Legal notice: production inserts the light-blue wave as a standalone spacer. */
body.itemid-164 .container-component {
  box-sizing: border-box !important;
  position: relative !important;
  padding-top: calc(205px + 22vh) !important;
}
body.itemid-164 .container-component::before {
  content: "";
  position: absolute;
  pointer-events: none;
  top: 11vh;
  left: 0;
  width: 100%;
  height: 205px;
  background: url('/images/hp/vague-bleu-clair.webp') left top / auto no-repeat;
}
@media (max-width: 767px), only screen and (min-device-width:320px) and (max-device-width:812px) {
  body.itemid-164 .container-component { padding-top: 0 !important; }
  body.itemid-164 .container-component::before { display: none !important; }
}

body.formation .container-component {
  box-sizing: border-box !important;
  display: block !important;
  padding-top: 129.6px !important;
}
body.formation .container-component > main {
  position: relative !important;
  inset: auto !important;
  width: 90% !important;
  height: auto !important;
  margin: 0 auto !important;
}
body.formation .container-component > .moduletable:last-child {
  position: relative !important;
  inset: auto !important;
}
body.formation .item-pageformation .gecca-panels--tabs {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  grid-template-columns: 255px minmax(0,1fr) !important;
}
body.formation .item-pageformation .gecca-tabs__nav {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
}
body.formation .item-pageformation .gecca-tabs__panels {
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  padding-left: 40px !important;
}
body.formation .item-pageformation .gecca-panel__body,
body.formation .item-pageformation .gecca-panel__body > *,
body.formation .item-pageformation .gecca-panel__title,
body.formation .item-pageformation .gecca-panel__body p {
  box-sizing: border-box !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
}
body.formation .item-pageformation .gecca-panel__body {
  padding: 0 40px 40px !important;
}
@media (max-width: 767px) {
  body.formation .item-pageformation .gecca-panels--tabs {
    grid-template-columns: minmax(0,1fr) !important;
  }
  body.formation .item-pageformation .gecca-tabs__panels {
    padding-left: 0 !important;
  }
  body.formation .item-pageformation .gecca-panel__body {
    padding-inline: 0 !important;
  }
}
body.digital .site-grid > .container-bottom-a::before,
body.formation .site-grid > .container-bottom-a::before { display: none !important; }
@media (min-width: 992px) {
  body:is(.digital,.formation) .site-grid > .container-bottom-a,
  body:is(.digital,.formation) .site-grid > .container-bottom-b {
    padding-top: 30px !important;
  }
}
/* The original distinguishes physical-device widths from window widths. */
@media only screen and (min-device-width:320px) and (max-device-width:812px) {
  body.qsn .main-bottom:has(#mod-custom123)::before,
  body.itemid-101 .main-bottom:has(#mod-custom111)::before { background-image:none !important; }
  body.digital .container-component { background-image:none !important; padding-top:0 !important; }
  body.qsn #mod-custom126,
  body.acomp .container-component > .moduletable:has(#mod-custom127),
  body.itemid-101 .container-component > .moduletable:has(#mod-custom113) {
    background-size: contain !important; padding-top:18vh !important;
  }
  body.itemid-101 .container-component > .moduletable:has(#mod-custom114),
  body.digital .container-component > .moduletable:has(#mod-custom114),
  body.formation .container-component > .moduletable:has(#mod-custom129) {
    background-image:none !important; background-color:#4da1f5 !important;
    padding:5vh 8vw !important;
  }
  body.itemid-101 #mod-custom114 { padding:0 !important; width:100% !important; }
}
@media screen and (min-device-width:1200px) and (max-device-width:1600px) {
  body .container-banner { background-position-y:-85px !important; }
}

/* Fluid interior blocks: retain page-specific artwork without fixed 1920px tracks. */
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split {
  box-sizing: border-box !important; width: 90% !important; max-width: 100% !important;
  height: auto !important; min-height: 0 !important;
  margin-inline: auto !important; transform: none !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 40px !important;
}
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split__content,
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split__media {
  width: auto !important; max-width: 100% !important; min-width: 0 !important;
  height: auto !important; transform: none !important;
}
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split__image {
  width: 100% !important; max-width: 100% !important; height: auto !important; margin-inline: 0 !important;
}
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split :is(h1,h2,h3,p) {
  max-width: 100% !important; height: auto !important;
}
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .container-component > main {
  height: auto !important; max-width: 100% !important;
}
@media (max-width: 767px) {
  body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .site-grid .gecca-split {
    grid-template-columns: minmax(0,1fr) !important; gap: 24px !important;
  }
}
body:is(.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .gecca-split__content > .offset-md-1 {
 width:auto !important; max-width:100% !important; margin-left:0 !important;
}

/* Interior footer: keep the site map and contact columns in separate tracks. */
@media (min-width: 992px) {
  body:not(.itemid-101) .site-grid > .container-bottom-a {
    box-sizing: border-box !important;
    padding: 281.5px 0 30px 6.8vw !important;
    gap: 1.727vw !important;
    align-items: flex-start !important;
  }
  body:not(.itemid-101) .container-bottom-a > .bottom-a:first-child {
    flex: 0 0 20.065vw !important;
    width: 20.065vw !important;
  }
  body:not(.itemid-101) .container-bottom-a > .bottom-a:nth-child(2) {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
  body:not(.itemid-101) .site-grid > .container-bottom-b {
    box-sizing: border-box !important;
    padding: 281.5px 6.8vw 30px 0 !important;
    align-items: flex-start !important;
  }
  body:not(.itemid-101) #mod-custom149 img {
    width: 100% !important;
    max-width: 269px !important;
    height: auto !important;
  }
}
body:not(.itemid-101) #mod-custom151,
body:not(.itemid-101) #mod-custom151 > div,
body:not(.itemid-101) #mod-custom149 > div,
body:not(.itemid-101) #menuFooter {
  width: 100% !important;
  max-width: 100% !important;
}
body:not(.itemid-101) .container-bottom-b > .moduletable {
  width: 100% !important;
  min-width: 0 !important;
}
body:not(.itemid-101) #menuFooter {
  font-size: 16.2px !important;
}
body:not(.itemid-101) #menuFooter > li {
  width: auto !important;
  height: auto !important;
  min-height: 24px !important;
  white-space: normal !important;
}
body:not(.itemid-101) #menuFooter a,
body:not(.itemid-101) #menuFooter .nav-header {
  font-size: 16.2px !important;
  line-height: 24.3px !important;
}
body:not(.itemid-101) #mod-custom151 p {
  height: auto !important;
}
body:not(.itemid-101) .site-grid > .container-bottom-a::before {
  background-position: left top !important;
  background-size: auto !important;
}
@media (max-width: 991px) {
  body:not(.itemid-101) .site-grid > .container-bottom-a,
  body:not(.itemid-101) .site-grid > .container-bottom-b {
    height: auto !important;
    min-height: 0 !important;
  }
  body:not(.itemid-101) .site-grid > .container-bottom-a {
    padding-bottom: 32px !important;
  }
  body:not(.itemid-101) .site-grid > .container-bottom-b {
    padding-top: 16px !important;
  }
}
@media (min-width: 992px) {
  body:not(.itemid-101):is(.digital,.formation) .site-grid > .container-bottom-a,
  body:not(.itemid-101):is(.digital,.formation) .site-grid > .container-bottom-b {
    padding-top: 30px !important;
  }
}
