/* GECCA fidelity corrections. The layer gives these scoped important rules
   precedence over legacy unlayered overrides without growing specificity. */
@layer gecca-fidelity {
  @media (min-width: 1200px) and (max-width: 1600px) {
    html body:not(.actus) .site-grid h1,
    html body:not(.actus) .site-grid h2 {
      font-size: 47px !important;
      line-height: 1.03 !important;
    }
    html body:not(.actus) .site-grid p,
    html body:not(.actus) .site-grid li {
      font-size: 16px !important;
      line-height: 24px !important;
    }
    html body:not(.actus) .container-banner .gecca-split__content h2 {
      font-size: 25px !important;
      line-height: 32.5px !important;
    }
    html body:not(.actus) .container-header {
      padding-left: 1.48% !important;
      padding-right: 0 !important;
      gap: 0 !important;
    }
    html body:not(.actus) .container-header .container-topbar {
      flex: 0 0 16vw !important;
      width: 16vw !important;
    }
    html body:not(.actus) .container-header .container-topbar .d-flex {
      gap: 2vw !important;
    }
    html body:not(.actus) .container-nav {
      flex: 1 1 auto !important;
      margin-left: 4.6vw !important;
      margin-right: 3vw !important;
    }
    html body.itemid-101 .container-banner .gecca-split__content {
      padding-top: 20px !important;
    }
    html body:not(.actus) .container-header .mod-menu { flex-wrap: nowrap !important; gap: 0 !important; justify-content: space-between !important; }
    html body:not(.actus) .container-header .mod-menu > li { margin: 0 !important; padding: 0 !important; white-space: nowrap !important; }
    html body:is(.qsn,.acomp,.digital,.formation) .container-banner .gecca-split__content { padding-top: 215px !important; }
    html body.culturel .container-banner .gecca-split__content,
    html body.ess .container-banner .gecca-split__content { padding-top: 215px !important; }
    html body.entrep .container-banner .gecca-split__content { padding-top: 230px !important; }
    html body:is(.culturel,.entrep,.ess,.contact,.itemid-164) .site-grid p { line-height: normal !important; }
    html body:is(.culturel,.entrep) .container-component > main { width: calc(90% - 100px) !important; margin: 78px auto 0 !important; }
    html body:is(.culturel,.entrep) .container-component .gecca-split { width: 100% !important; margin: 0 !important; }
    html body.culturel .container-component .gecca-split { padding: 0 0 90px !important; }
    html body.culturel .item-pageculturel > .com-content-article__body { margin-top: 15px !important; }
    html body:is(.culturel,.entrep) .container-component .gecca-split__content { margin-left: 0 !important; }
    html body.entrep .container-component .gecca-split { padding: 0 0 75px !important; }
    html body:is(.culturel,.entrep) .container-component .gecca-split__content p { margin: 0 0 20px !important; }
    html body.culturel .container-banner { height: 444.40625px !important; }
    html body:is(.entrep,.contact) .container-banner { height: 476.21875px !important; }
    html body:is(.entrep,.contact) .container-banner .gecca-split { grid-template-columns: 5fr 7fr !important; gap: 0 !important; }
    html body:is(.culturel,.entrep,.ess,.contact) .container-banner .gecca-split__content { padding-left: 25.6px !important; padding-right: 40px !important; }
    html body.culturel .container-banner .gecca-split__content { padding-right: 20px !important; }
    html body:is(.entrep,.contact) .container-banner .gecca-split__media { padding: 15px 25.6px 0 0 !important; }
    html body.culturel .container-banner .gecca-split__media { padding: 58.15625px 25.6px 0 0 !important; }
    html body:is(.culturel,.entrep) .container-banner .gecca-split__content p { margin: 0 0 20px !important; }
    html body.contact .container-banner .gecca-split__content { padding-top: 268px !important; }
    html body.contact .container-component { margin-top: 425px !important; }
    html body:is(.contact,.itemid-164) .container-component > main { width: 90% !important; margin: 18px auto 0 !important; }
    html body:is(.contact,.itemid-164) .container-component p { margin-bottom: 15px !important; }
    html body:not(.actus) .container-header .container-topbar .d-flex { justify-content: flex-start !important; }
    html body:not(.actus) .container-header .container-topbar .d-flex { padding-left: 5px !important; }
    html body:not(.actus) .container-header .container-topbar { justify-content: flex-start !important; }
    html body:not(.actus) .container-header .banner-icon { width: 52px !important; height: 52px !important; padding: 1px !important; }
    html body:not(.actus) .container-header .banner-icon img { width: 50px !important; height: 50px !important; }
    html body:not(.actus) .container-header .brand-logo img { height: 94px !important; max-height: none !important; }
    html body:not(.actus) .container-bottom-a p { line-height: normal !important; }
    html body.itemid-164 main p a { font-size: inherit !important; line-height: inherit !important; }
    html body.formation .container-banner .gecca-split__media { margin-top: 175px !important; }
    html body.formation .container-banner,
    html body.formation #mod-custom117 { height: auto !important; }
    /* Place each wave on the same section as production, in normal flow. */
    html body.digital .container-banner { height: 1122px !important; background-image: url('/images/hp/vague-bleue-foncee-orange.svg') !important; }
    html body.digital .container-component { background: url('/images/hp/vague-bleu-clair.webp') center top / auto 205px no-repeat !important; padding-top: 205px !important; }
    html body.digital .container-component > main { background: url('/images/hp/vague-bleu-clair-orange.svg') center top / 100% auto no-repeat !important; }
    html body.digital .item-pagedigital > .com-content-article__body > h2 { width: 748px !important; max-width: 100% !important; }
    html body.digital #mod-custom141 .gecca-carousel__track { padding-left: 0 !important; grid-auto-columns: 100% !important; gap: 0 !important; }
    html body.digital #mod-custom141 .gecca-carousel__slide { width: 100% !important; }
    html body.digital #mod-custom141 .gecca-carousel__slide img { width: 100% !important; max-width: 1409px !important; transform: none !important; }
    html body.digital .container-banner .gecca-split__media { margin-top: 79px !important; }
    html body.digital .site-grid p { line-height: normal !important; }
    html body.digital #mod-custom141 { top: 654px !important; }
    html body.digital #mod-custom141 .gecca-carousel { width: calc(100% - 204px) !important; margin-left: 97px !important; }
    html body.digital #mod-custom141 .gecca-carousel__slide img { height: auto !important; margin: 0 !important; }
    html body.digital .gecca-widget-25,
    html body.digital .gecca-widget-25 > .card-body,
    html body.digital .gecca-widget-25 .mod-custom { height: auto !important; min-height: 0 !important; display: flow-root !important; }
    html body.digital .gecca-widget-25 .gecca-split { width: 90% !important; margin: 20px auto 54px !important; }
    html body.digital .gecca-widget-26 { height: auto !important; min-height: 462.5px !important; }
    html body.digital .gecca-widget-26 { width: 90% !important; margin-inline: auto !important; }
    html body.digital .gecca-widget-26 .gecca-panels--tabs { grid-template-columns: calc((100% + 40px) / 4) minmax(0, 1fr) !important; }
    html body.digital .gecca-widget-26 .gecca-panel__body .offset-md-1 { width: 91.666667% !important; margin-left: 8.333333% !important; }
    html body.digital .container-component > main { width: 90% !important; margin: 237px auto 0 !important; padding-top: 0 !important; }
    html body.digital .item-pagedigital > .com-content-article__body > h2 { padding-left: 0 !important; }
    html body.digital .item-pagedigital .gecca-panel__body { padding-bottom: 15vh !important; }
    html body.digital .item-pagedigital .gecca-panels--tabs { margin-bottom: 54px !important; }
    html body.digital .item-pagedigital .gecca-panels--tabs { grid-template-columns: calc((100% + 40px) / 3) minmax(0, 1fr) !important; }
    html body.digital .item-pagedigital .gecca-tabs__panels { padding-left: 0 !important; }
    html body.digital .container-component > .main-bottom:not(.gecca-generated) { width: 90% !important; margin-inline: auto !important; }
    html body.digital .container-component > .main-bottom:not(.gecca-generated) h2 { padding-left: 0 !important; }
    html body.digital .tools img { margin-bottom: 3vh !important; }
    html body.digital .tools h3 { margin: 0 0 9px !important; }
    html body.digital .tools { margin-block: 54px !important; }
    html body.digital .main-bottom:has(.tools),
    html body.digital .main-bottom:has(.tools) .card-body,
    html body.digital #mod-custom130 { height: auto !important; min-height: 0 !important; display: flow-root !important; }
    html body.digital .container-component > .moduletable:has(#mod-custom114) { padding-top: 40vh !important; padding-bottom: 24.8vh !important; }
    html body.qsn .site-grid p { line-height: normal !important; }
    html body.qsn .container-component { padding-top: 304.40625px !important; }
    html body.qsn .container-component > main { width: 90% !important; margin: 0 auto !important; }
    html body.qsn .item-pageqsn .gecca-split { width: 100% !important; margin-inline: 0 !important; }
    html body.qsn .item-pageqsn .gecca-split:not(.adhVal) { grid-template-columns: 1fr 1fr !important; gap: 0 !important; }
    html body.qsn .item-pageqsn .gecca-split:not(.adhVal) .gecca-split__content > .offset-md-1 { width: 91.666667% !important; margin-left: 8.333333% !important; }
    html body.qsn .item-pageqsn .adhVal { grid-template-columns: 38.14% 61.86% !important; }
    html body.qsn .item-pageqsn .adhVal .gecca-split__content,
    html body.qsn .item-pageqsn .adhVal .gecca-split__media { width: 100% !important; }
    html body.qsn .item-pageqsn .adhVal .gecca-split__image { width: 687px !important; max-width: none !important; height: 568px !important; }
    html body.qsn .gecca-widget-12 { width: 100% !important; margin: 0 !important; }
    html body.qsn .gecca-widget-12 > .card-body { width: 90% !important; margin-inline: auto !important; padding: 0 !important; }
    html body.qsn .gecca-widget-12 .gecca-split { width: 100% !important; margin: 24vh 0 0 !important; }
    html body.qsn .container-component > .main-bottom:not(.gecca-generated) { width: 90% !important; margin: 0 auto !important; }
    html body.qsn .counter h2 { font-size: 69px !important; line-height: 1.03 !important; }
    html body.itemid-101 .container-banner .gecca-split__content :is(h1,h2,p) {
      max-width: 468.484px !important;
    }
    html body.itemid-101 .container-banner .gecca-split__media {
      padding-left: 16px !important;
    }
    html body.itemid-101 #mod-custom154 {
      width: 90% !important;
      margin-inline: auto !important;
    }
    html body.itemid-101 .container-banner { height: 697.3125px !important; }
    html body.itemid-101 .container-banner .gecca-split { min-height: 697.3125px !important; padding-top: 126.09375px !important; }
    html body.itemid-101 .container-banner .gecca-split__content { margin-top: 68.90625px !important; }
    html body.itemid-101 .site-grid p { line-height: normal !important; }
    html body.itemid-101 .container-top-a { padding-top: 315px !important; padding-inline: 0 !important; padding-bottom: 15px !important; }
    html body.itemid-101 .container-top-a > * { width: 100% !important; }
    html body.itemid-101 .container-top-a::after { content: "" !important; display: block !important; height: 321.5px !important; background: url('/images/hp/vague-bleue-foncee.svg') left top / 100% auto no-repeat !important; }
    html body.itemid-101 .secret > .col-md-3 > div {
      position: relative !important;
      min-height: 731px !important;
    }
    html body.itemid-101 .secret h3:first-child img {
      width: 100% !important;
      max-width: 100% !important;
      left: calc(5vh - 3vw) !important;
      top: -10vh !important;
      margin: 0 !important;
      transform: none !important;
      object-fit: fill !important;
    }
    html body.itemid-101 .secret h3:first-child { margin: 0 !important; }
    html body.itemid-101 .secret > div:nth-child(1) h3:first-child img { height: 410px !important; }
    html body.itemid-101 .secret > div:nth-child(2) h3:first-child img { height: 417px !important; }
    html body.itemid-101 .secret > div:nth-child(3) h3:first-child img { height: 374px !important; }
    html body.itemid-101 .secret h3:not(:first-child) {
      font-size: 20.4444px !important;
      line-height: normal !important;
      min-height: 6vh !important;
      margin-bottom: 1vh !important;
    }
    html body.itemid-101 .secret p { min-height: 170px !important; margin: 0 0 15px !important; }
    html body.itemid-101 .secret button { margin-top: 0 !important; }
    html body.itemid-101 .container-component > main { width: 100% !important; margin-inline: 0 !important; }
    html body.itemid-101 .container-component .adhVal {
      width: 90% !important;
      margin-inline: auto !important;
    }
    html body.itemid-101 .adhVal { grid-template-columns: 38.14% 61.86% !important; }
    html body.itemid-101 .adhVal .gecca-split__content,
    html body.itemid-101 .adhVal .gecca-split__media { width: 100% !important; }
    html body.itemid-101 .main-bottom:has(#mod-custom111) { width: 100% !important; margin-inline: 0 !important; }
    html body.itemid-101 .main-bottom:has(#mod-custom111) > .card-body { width: 90% !important; margin-inline: auto !important; padding: 0 !important; }
    html body.itemid-101 #mod-custom111 { width: 100% !important; }
    html body.itemid-164 .container-component {
      padding-top: calc(205px + 22vh) !important;
    }
    html body.itemid-164 .container-component::before { display: block !important; }
    html body.itemid-164 .page-header h1 {
      font-size: 16px !important;
      line-height: 19.2px !important;
      padding-bottom: 15px !important;
      margin-bottom: 15px !important;
    }
    /* Production aligns the hero columns at the bottom, with a 20vh lead-in
       for the text. Normal flow reproduces it across laptop window heights. */
    html body:is(.itemid-101,.qsn,.culturel,.entrep,.ess,.acomp,.formation,.contact) .container-banner {
      height: auto !important; min-height: 0 !important;
    }
    html body:not(.actus) .container-banner > .mod-custom,
    html body:not(.actus) .container-banner > .moduletable { height: auto !important; min-height: 0 !important; }
    html body:is(.itemid-101,.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .container-banner .gecca-split {
      width: 90% !important; max-width: none !important; margin: 0 auto !important;
      grid-template-columns: 5fr 7fr !important; gap: 0 !important;
      height: auto !important; min-height: 0 !important; padding: 15px 0 !important; align-items: end !important;
    }
    html body:is(.culturel,.ess) .container-banner .gecca-split { grid-template-columns: 1fr 1fr !important; }
    html body:is(.itemid-101,.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .container-banner .gecca-split__content {
      width: 100% !important; height: auto !important; margin: 0 !important; padding: 20vh 40px 0 25.6px !important;
    }
    html body:is(.culturel,.ess) .container-banner .gecca-split__content { padding-right: 20px !important; }
    html body:is(.itemid-101,.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .container-banner .gecca-split__media {
      width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 25.6px 20px 0 !important; align-self: end !important;
    }
    html body:is(.culturel,.ess) .container-banner .gecca-split__media { padding-left: 20px !important; }
    html body.digital .container-banner .gecca-split__media { align-self: center !important; }
    html body:is(.itemid-101,.qsn,.culturel,.entrep,.ess,.acomp,.digital,.formation,.contact) .container-banner .gecca-split__content p {
      line-height: normal !important; margin: 0 0 20px !important;
    }
    html body.itemid-101 .container-top-a { margin-top: 11vh !important; padding-top: calc(205px + 11vh) !important; }
    html body.itemid-101 .secret > .col-md-3 > div { min-height: 0 !important; padding: 35vh 5vh 5vh !important; }
    html body.qsn .container-component { padding-top: calc(205px + 23.8vh) !important; background-position: center 11vh !important; }
    html body:is(.culturel,.entrep,.ess) .container-component { height: auto !important; min-height: 0 !important; }
    html body.ess .container-component > main { width: calc(90% - 100px) !important; margin: 78px auto 0 !important; }
    html body.ess .container-component .gecca-split { width: 100% !important; margin: 0 !important; padding: 0 0 75px !important; }
    html body.ess .container-component .gecca-split__content { margin-left: 0 !important; }
    html body.ess .container-component .gecca-split__content p { margin: 0 0 20px !important; }
    html body:is(.formation,.acomp) .container-component { margin-top: 10vh !important; padding-top: 18vh !important; }
    html body:is(.formation,.acomp) .container-banner { margin-bottom: 0 !important; }
    html body.formation .gecca-panels--tabs { grid-template-columns: calc((100% + 40px) / 4) 1fr !important; gap: 0 !important; }
    html body.formation .gecca-tabs__panels { padding-left: 0 !important; }
    html body.formation .container-component :is(p,li) { line-height: normal !important; }
    html body.formation .container-component > .moduletable:has(#mod-custom129) { padding-top: 40vh !important; padding-bottom: 25vh !important; }
    html body:is(.formation,.acomp) .container-component > main { margin-top: 18px !important; }
    html body.acomp .gecca-widget-17 { margin-top: 1.45vh !important; }
    html body.digital .container-banner { height: auto !important; padding-bottom: 9px !important; }
    html body.digital #mod-custom116 { height: auto !important; }
    html body.digital #mod-custom141 { position: relative !important; top: auto !important; margin-top: 50px !important; }
  }
  @media (min-width: 1601px) {
    html body:is(.digital,.formation) .container-banner .gecca-split__content { padding-top: calc(20vh + 15px) !important; }
  }
  /* The desktop tab panel and its mobile accordion are duplicate views.
     Only one may occupy layout space at a time. */
  @media (max-width: 1199px) {
    html body.formation .item-pageformation .hidden-phones { display: none !important; }
    html body.formation .item-pageformation .hidden-desktop { display: block !important; }
    html body:is(.acomp,.formation) .gecca-panels--accordion summary { display: flex !important; justify-content: space-between !important; color: #646464 !important; font-size: 18px !important; line-height: 1.35 !important; list-style: none !important; }
    html body:is(.acomp,.formation) .gecca-panels--accordion summary * { color: #646464 !important; }
    html body:is(.acomp,.formation) .gecca-panels--accordion summary::-webkit-details-marker { display: none !important; }
    html body:is(.acomp,.formation) .gecca-panels--accordion summary::after { content: "+" !important; color: #646464 !important; }
    html body:is(.acomp,.formation) .gecca-panels--accordion details[open] > summary::after { content: "−" !important; }
    html body.acomp .gecca-widget-17,
    html body.formation .item-pageformation .gecca-panels--tabs {
      display: none !important;
    }
    html body.acomp .gecca-widget-22,
    html body.acomp .gecca-widget-22 .card-body,
    html body.acomp .gecca-panels--accordion {
      display: block !important;
      height: auto !important;
      min-height: 0 !important;
      position: static !important;
      transform: none !important;
    }
    html body.acomp .gecca-panels--accordion .gecca-panel__body {
      position: static !important;
      height: auto !important;
      min-height: 0 !important;
      width: 100% !important;
      padding: 16px 0 !important;
    }
    html body.acomp .gecca-panels--accordion .gecca-panel__body * {
      position: static !important;
      height: auto !important;
      max-width: 100% !important;
    }
    html body.acomp .container-component > .moduletable:has(#mod-custom127) {
      padding-top: 18vh !important;
      background-size: contain !important;
      position: relative !important;
      clear: both !important;
    }
    html body:not(.actus) .container-banner .gecca-split__content h2 {
      font-size: 25px !important;
      line-height: 32.5px !important;
    }
    html body:not(.actus) .site-grid h2:not(.gecca-panel__title) {
      font-size: 38px !important;
      line-height: 1.13 !important;
    }
    html body:not(.actus) .container-banner .gecca-split__content h2 {
      font-size: 25px !important;
      line-height: 32.5px !important;
    }
  }
  @media (min-width: 641px) and (max-width: 1199px) {
    html body.itemid-101 .container-top-a { height: auto !important; padding: 205px 0 60px !important; background-size: 100% 205px !important; }
    html body.itemid-101 .container-top-a > .moduletable,
    html body.itemid-101 #mod-custom154 { width: 90% !important; height: auto !important; transform: none !important; }
    html body.itemid-101 #mod-custom154 > * { width: 100% !important; height: auto !important; transform: none !important; }
    html body.itemid-101 .secret { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 30px !important; }
    html body.itemid-101 .secret > div { width: min(100%, 420px) !important; height: auto !important; }
    html body.itemid-101 .secret > div > div { width: 100% !important; height: auto !important; min-height: 0 !important; padding: 0 30px 30px !important; }
    html body.itemid-101 .secret :is(h3,p) { width: 100% !important; height: auto !important; min-height: 0 !important; }
    html body.itemid-101 .secret img { position: static !important; width: 100% !important; height: auto !important; margin: 0 !important; transform: none !important; }
    html body.itemid-101 #mod-custom154 .gecca-split { display: flex !important; flex-direction: column !important; height: auto !important; width: 100% !important; margin: 0 !important; transform: none !important; gap: 30px !important; }
    html body.itemid-101 #mod-custom154 .gecca-split :is(.gecca-split__content,.gecca-split__media) { height: auto !important; width: 100% !important; padding: 0 !important; margin: 0 !important; transform: none !important; }
    html body.itemid-101 #mod-custom154 .gecca-split :is(h2,p) { width: 100% !important; height: auto !important; }
    html body.acomp #mod-custom127,
    html body.acomp #mod-custom127 > div { height: auto !important; width: 100% !important; }
    html body.acomp #mod-custom127 .d-flex { display: flex !important; flex-direction: column !important; height: auto !important; width: 100% !important; gap: 24px !important; }
    html body.acomp #mod-custom127 .col-md-7,
    html body.acomp #mod-custom127 .col-md-3 { height: auto !important; width: 90% !important; margin: 0 auto !important; }
    html body.acomp #mod-custom127 :is(h2,p) { height: auto !important; width: 100% !important; }
    html body.acomp .container-component > .moduletable:has(#mod-custom127) { padding-top: 38vw !important; height: auto !important; min-height: 0 !important; overflow: visible !important; padding-bottom: 60px !important; }
    html body.acomp #mod-custom127 { overflow: visible !important; }
    html body.acomp .container-component { height: auto !important; min-height: 0 !important; overflow: visible !important; }
    html body.acomp #mod-custom127 .col-md-3 { min-height: 60px !important; overflow: visible !important; flex: none !important; }
    html body.acomp #mod-custom127 .btn { display: inline-flex !important; height: auto !important; min-height: 47px !important; align-items: center !important; position: static !important; overflow: visible !important; }
    html body.acomp .container-bottom-a::before { position: relative !important; top: 0 !important; display: block !important; }
    html body.formation .container-component,
    html body.formation .container-component > main,
    html body.formation .item-pageformation,
    html body.formation .item-pageformation > .com-content-article__body,
    html body.formation .item-pageformation .hidden-desktop,
    html body.formation .item-pageformation .gecca-panels--accordion { height: auto !important; min-height: 0 !important; position: static !important; transform: none !important; }
    html body.formation .item-pageformation .hidden-desktop,
    html body.formation .item-pageformation .gecca-panels--accordion { width: 100% !important; margin: 32px 0 !important; }
    html body.formation .item-pageformation .com-content-article__body > .col-md-5 { width: 100% !important; height: auto !important; }
    html body.formation .item-pageformation .com-content-article__body > .col-md-5 :is(h2,p) { width: 100% !important; height: auto !important; }
    html body.formation .container-component > .moduletable:last-child,
    html body.formation #mod-custom129,
    html body.formation #mod-custom129 > div,
    html body.formation #mod-custom129 .d-flex,
    html body.formation #mod-custom129 .col-md-7 { height: auto !important; width: 100% !important; margin-inline: 0 !important; }
    html body.formation #mod-custom129 .col-md-7 { padding: 40px !important; }
    html body.formation #mod-custom129 :is(h2,p) { width: 100% !important; height: auto !important; }
  }
  @media (min-width: 992px) and (max-width: 1199px) {
    html body:not(.actus) .container-banner,
    html body:not(.actus) .container-banner > *,
    html body:not(.actus) .container-banner .gecca-split,
    html body:not(.actus) .container-banner .gecca-split__content,
    html body:not(.actus) .container-banner .gecca-split__media { height: auto !important; min-height: 0 !important; }
    html body:not(.actus) .container-banner { margin-bottom: 0 !important; }
    html body:not(.actus) .container-banner .gecca-split { display: flex !important; flex-direction: column !important; width: 90% !important; margin: 0 auto !important; padding: 120px 0 40px !important; gap: 30px !important; }
    html body:not(.actus) .container-banner .gecca-split__content { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
    html body:not(.actus) .container-banner .gecca-split__media { position: static !important; width: min(100%,723px) !important; margin: 0 auto !important; padding: 0 !important; }
    html body:not(.actus) .container-banner .gecca-split__media img { width: 100% !important; height: auto !important; max-width: 100% !important; }
    html body:not(.actus) .container-banner h1 { font-size: 38px !important; line-height: 1.13 !important; }
    html body.digital #mod-custom116 { height: auto !important; min-height: 0 !important; }
    html body.digital #mod-custom141 { position: relative !important; top: auto !important; margin: 30px auto !important; }
  }
}

/* Interaction corrections: scoped to the existing header and métier cards. */
@layer gecca-fidelity {
  html body:not(.actus) .container-header .mod-menu > li > :is(a,button),
  html body:not(.actus) .container-header .mod-menu__heading {
    background: transparent !important; text-decoration: none !important;
    color: #fff !important;
  }
  html body:not(.actus) .container-header .mod-menu > li > :is(a,button)::before,
  html body:not(.actus) .container-header .mod-menu > li > :is(a,button)::after,
  html body:not(.actus) .container-header .mod-menu__heading::before,
  html body:not(.actus) .container-header .mod-menu__heading::after {
    content: none !important; display: none !important;
  }
  html body:not(.actus) .container-header .mod-menu > li.active > :is(a,button),
  html body:not(.actus) .container-header .mod-menu > li.active > button .mod-menu__heading { color: #000 !important; }
  html body:not(.actus) .container-header .mod-menu :is(a,button):focus-visible {
    outline: 2px solid #000 !important; outline-offset: 4px !important;
  }
  html body:not(.actus) .container-header .mod-menu__sub a:focus-visible {
    outline-color: #4da1f5 !important; outline-offset: 2px !important;
  }
  @media (min-width: 992px) {
    html body:not(.actus) .container-header .mod-menu > li.parent { position: relative !important; }
    html body:not(.actus) .container-header .mod-menu > li.parent::after {
      content: "" !important; display: block !important; position: absolute !important;
      top: 100% !important; left: 0 !important; width: 290px !important; height: 20px !important;
      background: transparent !important; border: 0 !important;
    }
    html body:not(.actus) .container-header .mod-menu > li.parent > .mod-menu__sub {
      display: block !important; top: 30px !important; left: 0 !important;
      width: 290px !important; padding: 20px !important; border-radius: 19px !important;
      background: #000 !important; visibility: hidden !important; opacity: 0 !important;
      pointer-events: none !important;
      transition: opacity .25s ease, visibility 0s linear .25s !important;
    }
    html body:not(.actus) .container-header .mod-menu > li.parent.gecca-submenu-open > .mod-menu__sub {
      visibility: visible !important; opacity: 1 !important; pointer-events: auto !important;
      transition-delay: 0s !important;
    }
    html body:not(.actus) .container-header .mod-menu__sub a {
      color: #fff !important; font-size: 15px !important; text-decoration: none !important;
    }
    html body:not(.actus) .container-header .mod-menu__sub li.current > a { color: #4da1f5 !important; }
  }
  @media (min-width: 992px) and (max-width: 1600px) {
    html body:not(.actus) .container-header .mod-menu__heading { font-size: 15px !important; line-height: normal !important; }
  }
  @media (hover: hover) and (pointer: fine) {
    html body:not(.actus) .container-header .mod-menu > li > a:hover,
    html body:not(.actus) .container-header .mod-menu > li.gecca-submenu-open > button .mod-menu__heading { color: #fea267 !important; }
    html body:is(.culturel,.entrep,.ess) .container-header .mod-menu > li > a:hover,
    html body:is(.culturel,.entrep,.ess) .container-header .mod-menu > li.gecca-submenu-open > button .mod-menu__heading { color: #000 !important; }
    html body:not(.actus) .container-header .mod-menu__sub a:hover,
    html body:not(.actus) .container-header .mod-menu__sub a:focus-visible { color: #4da1f5 !important; }
    html body.itemid-101 .secret h3:first-child img:hover { transform: scale(1.1) !important; }
  }
  @media (max-width: 991px) {
    html body:not(.actus) .container-header .mod-menu > li.parent > .mod-menu__sub {
      display: none !important; position: static !important; visibility: visible !important;
      opacity: 1 !important; pointer-events: none !important;
    }
    html body:not(.actus) .container-header .mod-menu > li.parent.gecca-submenu-open > .mod-menu__sub {
      display: block !important; pointer-events: auto !important;
    }
    html body:not(.actus) .container-header .mod-menu > li.active > a,
    html body:not(.actus) .container-header .mod-menu > li.active > button .mod-menu__heading { color: #fea267 !important; }
    html body:not(.actus) .container-header .mod-menu :is(a,button):focus-visible { outline-color: #fff !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    html body:not(.actus) .container-header .mod-menu__sub { transition: none !important; }
    html body:not(.actus) .secret img { transition: none !important; }
  }
}

/* 2026-10-09: centre calculator icons on the same axis as their labels. */
html body.digital #mod-custom130 .tools > .col-md-2 > a {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  height: 65px !important;
}
html body.digital #mod-custom130 .tools > .col-md-2 > a > img {
  display: block !important;
  height: auto !important;
  max-height: 65px !important;
  object-fit: contain;
}
/* Keep Digital tool tabs interactive inside the decorative module wrapper. */
body.digital #mod-custom139 { pointer-events: auto !important; }
