
.burger_menu_icon {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  cursor: pointer;
}

.dropdown_menu {
  -webkit-overflow-scrolling: touch;
}

.giant404 {
    font-size: 6.25rem;
    font-weight: bold;
    text-align: center;
    margin-top: 6.25rem;
    height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main_header{
    position: relative;
}
.main_header ul{
    list-style: none;
}
.top_header{
    position: relative;
    padding: 1.25rem;
    background-color: #fff;
    border-bottom: 2px solid #000;
    z-index: 999;
}
.div_header{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
/* Menu button. One icon for both states: when the menu opens, the top and
   bottom lines meet in the middle, then turn into a cross while the middle
   one shrinks away; closing plays it backwards, the turn first. On hover the
   middle line draws back from the right, with the buttons' easing
   (.btn__circle); nothing changes colour. */
.burger_menu_icon{
    --menu-ink: #050505;
    --menu-ease: cubic-bezier(0.625, 0.05, 0, 1);
    --menu-snap: cubic-bezier(0.65, 0, 0.35, 1);
    display: block;
    width: 4.6875rem;
    aspect-ratio: 1;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--menu-ink);
}
.burger_menu_icon svg{
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.burger_menu_icon__ring{
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
}
.burger_menu_icon__line{
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    transform-box: fill-box;
    transform-origin: center;
    transition:
        rotate 0.3s var(--menu-snap),
        scale 0.3s var(--menu-snap),
        translate 0.3s var(--menu-snap) 0.2s;
}
/* a dash the length of the line, then a gap as long: moving the pattern draws
   the line back from its right end, apart from the scale the cross uses */
.burger_menu_icon__line--middle{
    stroke-dasharray: 36 36;
    transition:
        scale 0.25s var(--menu-snap) 0.25s,
        stroke-dashoffset 0.5s var(--menu-ease);
}

.main_header.menu_open .burger_menu_icon__line{
    transition:
        translate 0.3s var(--menu-snap),
        rotate 0.45s var(--menu-ease) 0.2s,
        scale 0.45s var(--menu-ease) 0.2s;
}
/* 1.11: the arms of the cross are as long as in the former close icon */
.main_header.menu_open .burger_menu_icon__line--top{
    translate: 0 9px;
    rotate: 45deg;
    scale: 1.11 1;
}
.main_header.menu_open .burger_menu_icon__line--bottom{
    translate: 0 -9px;
    rotate: -45deg;
    scale: 1.11 1;
}
.main_header.menu_open .burger_menu_icon__line--middle{
    scale: 0 1;
    transition:
        scale 0.2s var(--menu-snap),
        stroke-dashoffset 0.5s var(--menu-ease);
}

/* hover with a mouse: the middle line keeps a bit more than half its length */
@media (hover: hover){
    .burger_menu_icon:hover .burger_menu_icon__line--middle{
        stroke-dashoffset: 16;
    }
}

/* keyboard focus: a ring around the button, the icon itself unchanged */
.burger_menu_icon:focus-visible{
    outline: 2px solid currentColor;
    outline-offset: 0.25rem;
}

@media (prefers-reduced-motion: reduce){
    .burger_menu_icon__line,
    .main_header.menu_open .burger_menu_icon__line{
        transition-duration: 0.01s;
        transition-delay: 0s;
    }
}
.header_title, .header_lang a{
    font-size: 1.5rem;
    font-weight: 600;
    color:black;
}
.header_title{
    letter-spacing: 0.75rem;
}

.main_header .div_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

.main_header .top_header { position: relative; }

.main_header .div_header {
  display: block;
  grid-template-columns: none;
  position: static;
  min-height: 4.6875rem;
}

.main_header .div_header > :first-child {
  position: absolute;
  left: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  justify-self: auto;
  z-index: 2;
}

.main_header .div_header > :nth-child(2) {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
}
.main_header .div_header > :nth-child(2) a { pointer-events: auto; }

.main_header .div_header > :last-child:not(:first-child):not(:nth-child(2)) {
  position: absolute;
  right: 1.25rem;
  top: 50%;
  transform: translateY(-50%);
  justify-self: auto;
}

.main_header .header_title {
  position: static;
  transform: none;
  white-space: nowrap;
}

.header_title span {
    font-weight:600;
}

.menu-button {
  grid-column-gap: .1875em;
  grid-row-gap: .1875em;
  flex-flow: column;
  padding: 1em;
  font-size: 1em;
  display: flex;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  border: none;
}

.menu-button-line {
  background-color: #e7dddb;
  width: 2em;
  height: .1875em;
}

.dropdown_menu {
    height:0;
}

.dropdown_menu ul {
  position: absolute;
  width: 100%;
  top: 100%;
  left: 0;
  height: 0;
  opacity: 1;
  z-index: 999;
  background-color: #fff;
}

.dropdown_menu li {
  border-bottom: 2px solid #000;
  transition: all 0.5s;
  opacity: 0;
}
.dropdown_menu li:hover{
    background-color: #050505;
}
.dropdown_menu li a{
    color: #000;
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 1.5;
    display: block;
    margin-left:19vw;
    padding: 0 1.25rem;
    position: relative;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dropdown_menu li a:before{
    content: '';
    position: absolute;
    left: -6.25rem;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
}

.dropdown_menu li a {
  position: relative;
}

.dropdown_menu li a::before {
  content: "";
  position: absolute;
  left: -6.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 4.0625rem;
  height: 4.0625rem;
  border-radius: 50%;
  border: 2px solid #fff;
  background: transparent;
  opacity: 0;
  transition:
    opacity .3s ease,
    background-color .3s ease;
  pointer-events: none;
}

.dropdown_menu li:hover {
  background-color: #050505;
}

.dropdown_menu li:hover a {
  color: #fff;
  overflow: visible;
}

.dropdown_menu li:hover a::before {
  opacity: 1;
  background-color: #fff;
}

.dropdown_menu li.is-tapped {
  background-color: #050505;
}
.dropdown_menu li.is-tapped a {
  color: #fff;
  overflow: visible;
}
.dropdown_menu li.is-tapped a::before {
  opacity: 1;
  background-color: #fff;
}

/* The open menu fills the screen under the header, whatever its size: the
   rows share that height equally, and the labels take their size from the
   row, as on desktop. From 768px up they stay on one line and form a column
   as wide as the longest, centred on the screen: the same air on both sides,
   at least a tenth of the width each, --menu-font-fit capping the size when
   the row height would ask for more. header-menu.js measures the header
   (--menu-offset, the fixed --header-offset is only its desktop height),
   counts the items (--menu-rows) and sets that cap; dvh follows mobile
   browser bars. Phones, below 768px, let the labels wrap across the width
   and fit them in the row by script. */
.dropdown_menu .animated_menu > li {
  height: calc((100dvh - var(--menu-offset, var(--header-offset, 0px))) / var(--menu-rows, 7));
  /* the 2px rule under each row counts in its share */
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.dropdown_menu .animated_menu > li > a {
  display: block;
  width: 100%;
  line-height: 1;
    overflow: visible;
  font-size: min(
    clamp(
      1.25rem,
      calc(
        (100dvh - 6.25rem - var(--menu-offset, var(--header-offset, 0px))) / var(--menu-rows, 7) * 0.72
      ),
      14vw
    ),
    var(--menu-font-fit, 100vw)
  );
}

/* the centred column: three columns, the middle one as wide as the longest
   label (max-content, shared by every row through subgrid), the labels
   aligned on its left edge; each row still spans the screen with its rule */
@media (min-width: 768px) {
    .dropdown_menu .animated_menu {
        display: grid;
        grid-template-columns: 1fr max-content 1fr;
        align-content: start;
    }
    .dropdown_menu .animated_menu > li {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: subgrid;
        align-items: center;
    }
    .dropdown_menu .animated_menu > li > a {
        grid-column: 2;
        width: auto;
        margin: 0;
        padding: 0;
    }
}
@media (max-width: 1280px){
    .dropdown_menu .animated_menu > li {
        padding-top:0!important;
    }
}

@media (max-width: 640px) {
    .dropdown_menu .animated_menu > li > a {
        font-size: 2.125rem;
    }
}

.dropdown_menu li:hover a{
    color: #fff;
}

.section_box_container{
    padding-left:1.25rem;
    padding-right:1.25rem;
}

.section_box {
    max-width: 106.25rem;
    margin: 0 auto;
    padding: 1.875rem 1.875rem 2.5rem;
    overflow: hidden;
}
.section_box span{
    font-size: 1.375rem;
}
.section_box .left_text{
    font-size: 2.75rem;
    margin: 1.25rem 0 0;
    max-width: 65rem;
    overflow-wrap: break-word;
}
.section_box > div{
    margin-top: 1.875rem;
    border-radius: var(--radius-md);
}

.section_box span {
    font-size: 2.75rem;
}

.section_box .content {
    display: flex;
    flex-direction: row;
}

.section_box .content.content_vertical {
    display: flex;
    flex-direction: column;
}

.section_box .content .content_inner:first-child {
    width: 34%;
    display: flex;
    flex-direction: column;
}

.section_box .content .content_inner:nth-child(2) {
    width: 66%;
}

.section_box .content .content_inner {
    min-width: 0;

    box-sizing: border-box;
}
.section_box .left_text,
.section_box .content h3 {
    overflow-wrap: break-word;
    word-break: break-word;
}

.sec_banner_propos{
    padding: 1.875rem 1.25rem;
}

.div_banner_propos{
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: var(--radius-md);

    min-height: 35.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.div_banner_propos h1,
.page_header_wrapper h1 {
    color: #fff;
    font-size: 5.5rem;
    font-weight: 500;
}

.desc-line  { overflow: hidden; }
.desc-line > * { display: inline-block; will-change: transform; }

.main_header {
  position: fixed;
  top: 0; left: 0; right: 0;
  transform: translateY(-100%);
  transition: transform 0.45s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
  z-index: 1000;
}

.main_header.is-visible,
.main_header.menu_open {
  transform: translateY(0);
}

.admin-bar .main_header { top: 2rem; }
@media (max-width: 782px) {
  .admin-bar .main_header { top: 2.875rem; }
}

@media (prefers-reduced-motion: reduce) {
  .main_header { transition: none; }
}

:where([data-reveal-scope]) { position: relative; border-radius: 1rem; overflow: hidden; }
:where([data-reveal-scope] > :not(.bg)) { position: relative; z-index: 1; }

:where([data-reveal-scope]) { --section-bg: var(--moba_blue, #1e5bd6); }

:where([data-reveal-scope] > .bg) {
  position: absolute;
  inset: 0;
  z-index: 0;

  background-image: var(--section-bg-image, none);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  background-color: var(--section-bg, transparent);
}

:where([data-bg="blue"])       { --section-bg: var(--moba_blue); }
:where([data-bg="grey"])       { --section-bg: var(--moba_grey); }

:where([data-bg="gradient-1"]) { --section-bg: linear-gradient(180deg,#cfe3ff, #1e5bd6); }

.section_box_container .div_temoig_home {
  position: relative;
  overflow: hidden;
}

.section_box_container .div_temoig_home .bg {
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform-origin: center;
  will-change: transform, opacity;
}

.section_box_container .slideup_reveal {
  display: inline-block;
  will-change: transform, opacity;
}

.section_box_container .testimonial_card {
  will-change: transform, opacity;
}

.sec_footer{
    background: #000;
    padding: 3.125rem 1.25rem 1.875rem;
    color: #fff;
}

.footer_content{
    display: flex;
    justify-content: space-between;
    gap: 1.25rem;
    padding-bottom: 1.875rem;
}

.sec_footer .footer_logo img {
  filter: brightness(0) invert(1);
}

.sec_footer .footer_logo img.no-invert {
  filter: none;
}

.footer_content > div{
    flex: 1;
}
.div_footer_menu p{
    font-size: 1rem;
    margin-bottom: 1.25rem;
}
.footer_content ul li{
    line-height: 2;
}
.footer_content ul li a{
    color: #fff;
    font-size: 1rem;
}
.footer_content ul li a:hover{
    color:  var(--moba_orange);
}
.footer_content .footer_logo{
    display: flex;
    align-items: flex-end;

    height: 6.875rem;
    margin-bottom: 2.5rem;
}
.footer_content .footer_logo img{
    height: 100%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left bottom;
}
.footer_copyright{
    margin-top: 1.875rem;
}
.footer_copyright p{
    font-size: 0.9375rem;
    font-weight: 600;
}
@media (max-width: 640px) {
    .footer_copyright p {
        font-size: 0.75rem;
    }
}

.div_moba_logo{
    position: relative;
}
.div_moba_logo:after{
    content: '';
    position: absolute;
    right: 5%;
    top: 0;
    height: 100%;
    border-right: 1px solid #fff;
}
.div_moba_logo img{
    max-width: 100%;
}
.div_movia_logo{
    padding-left: 2.5rem;
}
.div_movia_logo img{
    max-width: 100%;
}

/* Footer on large tablets, 961 to 1280px: the two rows of the smaller ones
   (menu and button, then the two logos) rather than four columns of about
   230px, where the 22px menu broke on every other item. */
@media (min-width: 961px) and (max-width: 1280px) {
    .footer_content {
        flex-wrap: wrap;
        row-gap: 1.875rem;
    }
    /* the logo columns keep their padding around the divider, inside the half */
    .footer_content > div {
        flex: auto;
        width: calc(50% - 0.625rem);
        box-sizing: border-box;
    }
    .footer_content a.cta.btn {
        width: 100%;
        padding: 0;
        border: 0;
    }
}

.nos_projets_page {
    background: rgba(131,220,255,0.5);
}
.nos_projets_title{
    padding: 3.125rem 1.25rem 1.25rem;
    display: flex;
    justify-content: center;
}
.nos_projets_title h1{
    font-size: 5.5rem;
    font-weight: 500;
    text-align: center;
}

.page-banner{
    padding: 2.8125rem 1.25rem;
    border-bottom: 2px solid black;
}
.page-banner h1{
    font-size: 5.5rem;
    font-weight: 500;
    text-align: center;
}

.right_fiche_content .project-status {
  display: inline-block;
  padding: 0.25rem 0.875rem;
  margin: 0.5rem 0 0.875rem;
  border-radius: var(--radius-pill);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
}
.right_fiche_content .project-status--current {
  background-color: var(--moba_orange);
  color: #fff;
}
.right_fiche_content .project-status--past {
  background-color: var(--moba_grey);
  color: #000;
}

.sec_back_link {
    padding: 3.75rem 2.5rem 5rem;
}
.sec_back_link .fixed_container {
    display: flex;
    justify-content: flex-start;
}
.back-link {
    display: inline-flex;
    align-items: center;
    gap: 1.125rem;
    color: #000;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.25;
}
.back-link__arrow {
    flex-shrink: 0;
    transition: transform .25s ease;
}
.back-link:hover .back-link__arrow {
    transform: translateX(-0.375rem);
}
.back-link__label {
    display: block;
    text-align: left;
}
@media (max-width: 640px) {
    .sec_back_link {
        padding: 2.5rem 1.25rem 3.75rem;
    }
    .back-link {
        font-size: 1rem;
        gap: 0.75rem;
    }
    .back-link__arrow {
        width: 3rem;
        height: 1.5rem;
    }
}

.projet_tags{
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}
.projet_tags ul{
    display: flex;
    flex-wrap: wrap;
    column-gap: 0.9375rem;
    row-gap: 0.3125rem;
}
.projet_tags a{
    font-size: 1rem;
}

.page-banner-img{
    padding: 1.875rem 1.25rem;
    padding-top:1.875rem;
    height:35.9375rem;
}
.div_fiche_thum img,
.fiche_bottom_img__item img
{
    width: 100%;
    border-radius: var(--radius-md);
    height:35.9375rem;
    object-fit: cover;
}

.right_fiche_content {
    padding-top:1.875rem;
    padding-bottom: 1.875rem;
}

.right_fiche_content h2{
    font-size: 2.75rem;
    margin: 3.125rem 0;
}

.right_fiche_content p{
    font-size: 1.375rem;
    max-width: 35.625rem;
    line-height: 1.4;
    font-weight: 100;
}

.right_fiche_content p a{
    color: var(--moba_orange);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.right_fiche_content p a:hover{
    text-decoration: none;
}

.left_fiche_content {
    container-type: inline-size;
}

.left_fiche_content h2{
    margin: 3.125rem 0;
    line-height: 1.4;

    font-size: clamp(1.25rem, 6cqw, 2.75rem);
    text-wrap: balance;
    overflow-wrap: anywhere;
}
.left_fiche_content p{
    font-size: 1.375rem;
}

.sec_fiche_content{
    padding: 1.875rem 1.25rem;
    padding-top:0;
}

.sec_fiche_bottom_img{
    padding: 1.875rem 1.25rem 3.125rem;
}

.nos_campagnes_page .grid_projets_boxes{
    margin-top: 0;
}

.event_sponsor {
    padding-top: 2.5rem;
}
.event_sponsor__label {
    margin: 0 0 1rem;
    font-size: 1.25rem;
}
.event_sponsor__img {
    margin: 0;
}
.event_sponsor__img img {
    display: block;
    max-width: 13.75rem;
    height: auto;
}
.event_sponsor__imgs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
    margin: 0;
}
.event_sponsor__imgs img {
    display: block;
    max-width: 7.5rem;
    max-height: 5rem;
    width: auto;
    height: auto;
}

.sec_filter_nos{
    padding: 1.25rem 1.25rem 2.5rem;
}
.div_filter_nos{
    padding-bottom: 1.875rem;
}

.div_toggle_filter{
    padding: 1.25rem 0;
}

.filters-toggle[aria-expanded="false"] .filters-toggle__icon {
  transform: rotate(45deg);
}

.filters-toggle[aria-expanded="true"] .filters-toggle__icon {
  transform: rotate(90deg);
}

.div_filtres {
    display: flex;
    align-items: center;
    gap: 1.25rem;

    overflow: hidden;
    height: auto;
    transition: height 0.3s ease;
    width:100%;
}

.div_filtres:last-child {
    margin-bottom:0;
}

.div_filtres p{
    min-width:12.5rem;
}

.div_filtres.is_closed {
    height: 0 !important;
}

.div_filtres p{
    font-size: 1rem;
}
.div_filtres ul{
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}
.div_filtres ul li a{
    font-size: 1rem;
    background: #fff;
    border-radius: 1.25rem;
    padding: 0.3125rem 0.75rem;
}
.div_filtres ul li.selected a{
    background: var(--moba_orange_warm);
}

.grid_events_boxes{
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.875rem;
    padding-top: 2.5rem;
}
.grid_events_boxes .event_box {
    width: 100% ;
    background: #fff;
    padding: 0.625rem 0;

    position: relative;
}
.grid_events_boxes .event_box img{
    border-radius: 1.25rem;
    width: calc(100% - 1.25rem);
    margin: 0 auto;

    filter: grayscale(100%);
    transition: filter 0.3s ease;
}
.grid_events_boxes .event_box:hover img{
    filter: none;
}

.grid_events_boxes .event_box.is-centered img,
.grid_events_boxes .event_box img.is-activating{
    filter: none;
}
.grid_events_boxes .event_info{
    width: calc(100% - 2.5rem);
    z-index: 1;
}
.grid_events_boxes .event_info h2{
    font-size: 1.5rem;
}
.grid_events_boxes .event_info a{
    color: #000;
    transition: color 0.3s ease-in-out;
}
.grid_events_boxes .event_info a:hover{
    color: var(--moba_orange_warm);
}
.grid_events_boxes .event_tags a{
    font-size: 0.9375rem;
}
.grid_events_boxes .event_box:after{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease-in-out;
}
.nos_projets_page .grid_events_boxes .event_box:hover:after{
    opacity: 0.2;
}

.sec_projets_grid{
    padding: 3.125rem 1.25rem;
    border: solid #000;
    border-width: 2px 0;
}
.grid_projets_boxes{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1.875rem;
    row-gap: 3.75rem;
    margin-top: 3.125rem;
}

.grid_projets_boxes .projet_box{
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-md);
    border: 0;
    background: #fff;
    width: 100% !important;
    padding: 0;
    aspect-ratio: 1.3;
}

.nos_projets_page .grid_projets_boxes .projet_box > a {
    position: relative;
    z-index: 2;

    clip-path: inset(0 0 20% 0 round 1.5625rem);
    display: block;
    width: 100%;
    height: 100%;
}
.nos_projets_page .grid_projets_boxes .projet_box > a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #fff;
}

.nos_projets_page .grid_projets_boxes .projet_box .projet_info {
    position: absolute;
    inset: auto 0 0 0;
    width: 100%;
    height: 20%;
    z-index: 1;
    background: #fff;
    border: 0;
    color: #000;
    padding: 0.375rem 0.875rem;
    box-sizing: border-box;
    transform: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.nos_projets_page .grid_projets_boxes .projet_box:hover .projet_info {
    transform: none;
}

.nos_projets_page .grid_projets_boxes .projet_box .projet_info .projet_tags {
    display: none;
}
.nos_projets_page .grid_projets_boxes .projet_box .projet_info h2 {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
    margin: 0;
    color: inherit;
    text-align: center;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nos_projets_page .grid_projets_boxes .projet_box .projet_info a {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
}

.grid_projets_boxes .projet_tile {
  width: 100%;
  padding: 0;
  align-self: start;
  min-width: 0;
}

.grid_projets_boxes .projet_box > a{
    display: flex;
    align-items: center;
    height: 100%;
}

.news_page .grid_projets_boxes .projet_box > a{
    display: flex;
    align-items: flex-end;
}

.grid_projets_boxes .projet_box a img {
    display: block;
    object-fit: cover;
}

.news_page .publicat_grid.grid_projets_boxes {
  align-items: stretch;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box {
  position: relative;
  border: none;
  background: transparent;
  border-radius: 0;
  aspect-ratio: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box > a {
  display: block;
  height: auto;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box > a img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md);
}

.news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info {
  position: static;
  transform: none;
  background: transparent;
  color: #000;
  padding: 0;
  margin: 0;
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  overflow: visible;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info .projet_tags {
  margin: 0;
}
.news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info .projet_tags li {
  font-size: 0.75rem;
}
.news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info h2 {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.25;
  margin: 0;
  color: inherit;
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info a {
  color: inherit;
  text-decoration: none;
  display: block;
}

.nos_projets_page img{
    width: 100%;
    height: 100%;
}

.nos_campagnes_page .projet_box a img {
    max-width: calc(100% - 1.25rem);
    max-height: calc(100% - 3.75rem);
    object-fit: contain;
}

.grid_projets_boxes .projet_box .projet_info{
    position: absolute;
    left: 0;
    bottom: 0;
    width: calc(100% - 2.5rem);

    background-color: #ffffff;
    padding: 1.25rem;
    transform: translateY(100%);
    transition: all 0.3s;
}
.projet_box:hover .projet_info{
    transform: translateY(0);
}
.grid_projets_boxes .projet_info a{
    color: #000;
}

.projet_info h2{
    font-size: 2rem;
    font-weight: 500;
}

/* Campaign tiles (Campagnes et événements page), from 768px up. The white
   strip that slid up with the audiences is gone: the audiences now rise at
   the bottom of the tile from behind their own edge, the reveal of the home
   page news tiles (homepage.css, "News tiles"). The logo taking its colours
   stays the main event, so no veil: the logo only lifts and steps back a
   little to make room, and a white haze behind the text keeps it readable
   where a tall logo still reaches down. The campaign title is in the link
   for screen readers only. Phones keep the caption hidden, as before.

   What reveals a tile: hover or keyboard focus; on touch screens, which have
   neither, the row in the middle of the screen as the page scrolls
   (.is-centered, main.js campaignsCenteredRow) and a tap, which holds the
   campaign back for the time of the reveal (img.is-activating, main.js). */
@media (min-width: 768px) {
  .nos_campagnes_page .grid_events_boxes .event_box {
    --tile-ease: cubic-bezier(0.625, 0.05, 0, 1);
    --tile-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --tile-ease-leave: cubic-bezier(0.4, 0, 0.2, 1);
    --tile-pad: clamp(1rem, 6cqi, 1.625rem);
    container-type: inline-size;
    isolation: isolate;
  }

  .nos_campagnes_page .grid_events_boxes .event_box > a:first-child {
    transition: transform 0.8s var(--tile-ease-out);
  }

  /* also a direct link of .projet_box, so it has to undo the image link's
     layout (.grid_projets_boxes .projet_box > a: full height, centred) */
  .nos_campagnes_page .grid_events_boxes .event_box .projet_info {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: auto;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
    padding: var(--tile-pad);
    text-align: left;
    background: none;
    color: var(--moba_text_dark);
    transform: none;
    transition: none;
  }

  .nos_campagnes_page .grid_events_boxes .event_box .event_caption {
    position: relative;
  }
  /* the haze: opaque behind the text, fading out 16px above it. With the
     logo's lift there is no overlap with today's campaigns; it is there for
     a taller logo or a longer list of audiences */
  .nos_campagnes_page .grid_events_boxes .event_box .event_caption::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -1rem;
    right: calc(-1 * var(--tile-pad));
    bottom: calc(-1 * var(--tile-pad));
    left: calc(-1 * var(--tile-pad));
    background: linear-gradient(to top, #fff calc(100% - 1rem), rgb(255 255 255 / 0));
    opacity: 0;
    transition: opacity 0.4s var(--tile-ease-leave);
  }

  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags {
    display: block;
    margin: 0;
    transform: translateY(100%);
    clip-path: inset(0 0 100% 0);
    transition: transform 0.35s var(--tile-ease-leave), clip-path 0.35s var(--tile-ease-leave);
  }
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags:not(:has(li)) {
    display: none;
  }
  /* three lines hold the four audiences there are, even on the narrowest tile */
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags ul {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    font-size: 0.875rem;
    line-height: 1.25rem;
    letter-spacing: 0.01em;
    color: rgb(29 29 27 / 0.78);
  }
  /* an audience never splits over two lines, the lines break between them;
     the non-breaking space keeps each dot with the audience before it */
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags li {
    display: inline;
    font-size: inherit;
    white-space: nowrap;
  }
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags li:not(:last-child)::after {
    content: "\00a0· ";
    white-space: normal;
  }

  .nos_campagnes_page .grid_events_boxes .event_box .projet_info:focus-visible {
    outline: 2px solid var(--moba_text_dark);
    outline-offset: -0.375rem;
    border-radius: inherit;
  }

  /* the colours come back on hover through the rule above
     (.grid_events_boxes .event_box:hover img); keyboard focus too */
  .nos_campagnes_page .grid_events_boxes .event_box:has(:focus-visible) img {
    filter: none;
  }
  /* no audiences, nothing to make room for: the logo stays where it is */
  .nos_campagnes_page .grid_events_boxes .event_box:has(.projet_tags li):is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) > a:first-child {
    transform: translateY(-8%) scale(0.9);
    transition-duration: 1.2s;
  }
  /* three audiences or more run over two or three lines: more room */
  .nos_campagnes_page .grid_events_boxes .event_box:has(.projet_tags li:nth-child(3)):is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) > a:first-child {
    transform: translateY(-14%) scale(0.8);
  }
  .nos_campagnes_page .grid_events_boxes .event_box:is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) .event_caption::before {
    opacity: 1;
    transition: opacity 0.6s var(--tile-ease);
  }
  .nos_campagnes_page .grid_events_boxes .event_box:is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) .projet_tags {
    transform: none;
    clip-path: inset(0);
    transition: transform 0.9s var(--tile-ease) 0.08s, clip-path 0.9s var(--tile-ease) 0.08s;
  }
}

/* reduced motion: the logo stays put and the audiences fade, colours unchanged */
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
  .nos_campagnes_page .grid_events_boxes .event_box > a:first-child,
  .nos_campagnes_page .grid_events_boxes .event_box:has(.projet_tags li):is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) > a:first-child,
  .nos_campagnes_page .grid_events_boxes .event_box:has(.projet_tags li:nth-child(3)):is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) > a:first-child {
    transform: none;
  }
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags,
  .nos_campagnes_page .grid_events_boxes .event_box:is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) .projet_tags {
    transform: none;
    clip-path: none;
    transition: opacity 0.3s ease;
  }
  .nos_campagnes_page .grid_events_boxes .event_box .projet_tags {
    opacity: 0;
  }
  .nos_campagnes_page .grid_events_boxes .event_box:is(:hover, :has(:focus-visible), .is-centered, :has(img.is-activating)) .projet_tags {
    opacity: 1;
  }
}

.div_plus_projets{
    padding: 2.5rem 1.25rem;
    text-align: center;
}
.div_plus_projets a{
    display: inline-block;
    font-size: 2rem;
    color: #000;
    background: #fff;
    border-radius: 2.5rem;
    padding: 1.25rem 5rem;
}

.beige_page{
    background-color: var(--moba_beige);
}

.grey_page{
    background-color: var(--moba_light_grey);
}

.div_fiche_content{
    display: flex;
    gap: 3.125rem;
}
.div_fiche_content > div{
    flex: 1;
}
.left_fiche_content{
    background: var(--moba_blue);
    border-radius: var(--radius-md);
    padding: 1.875rem;
}

.div_fiche_bottom_img img{
    width: 100%;
    border-radius: var(--radius-md);
}

.camp_event_tags {
  display: flex;
  column-gap: 2.5rem;
  row-gap: 0px;
  flex-wrap: wrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 1.875rem;
}

.sec_accord_camp .accordion-css__item-h3 {
    font-size: 2.375rem;
}

.camp-event-tag {
    display: inline-block;
    white-space: nowrap;
    font-size: 1.125rem;
}

.prix_grn_box{
    background: var(--moba_green);

    padding: 3.75rem 1.875rem 1.875rem;
    margin-top: 3.125rem;
    border-radius: var(--radius-md);
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 1.375rem;
    line-height: normal;
    letter-spacing: 0;
}
.prix_grn_box p,
.prix_grn_box h3,
.prix_grn_box h4 {
    font-family: inherit;
    font-weight: 400;
    font-size: 1.375rem;
    line-height: normal;
    letter-spacing: 0;
}
.prix_grn_box h3{
    margin: 3.75rem 0 2.5rem;
}
.prix_grn_box a{
    font-size: 1rem;
    background: #fff;
    border-radius: 1.25rem;
    padding: 0.625rem 1.25rem;
    display: inline-block;
    color:black;
}

.sec_banner_camp{
    padding: 1.875rem 1.25rem;
}
.div_banner_camp{
    width: 100%;
    min-height: 35.625rem;
    border-radius: var(--radius-md);
    overflow: hidden;
}
.div_banner_camp img {
    width: 100%;
    height: 35.625rem;
    border-radius: var(--radius-md);
    object-fit: cover;
}

.div_coll_beau,
.newscontent {
    background: var(--moba_blue);
    padding: 3.125rem;
    border-radius: var(--radius-md);
    max-width: 100%;
    display: flex;
    gap: 5rem;
}
.div_coll_beau > div{
    flex: 1;
    width: 50%;
    font-size:1.375rem;
}

.div_coll_beau > div p {
    line-height:1.3;
}

.div_coll_beau h1{
    font-size: 2.75rem;
    padding-top:1.875rem;
}

.sec_accord_camp,
.sec_coll_beau {
    padding: 1.875rem 1.25rem ;
    padding-top:0.9375rem;
    padding-bottom:0.9375rem;
}

.div_accord_camp{
    display: flex;
    gap: 2.5rem;
    align-items: start;
}

.div_accord_camp a {
    font-weight: 100;
}
.div_accord_camp > div{
    flex: 1;
}
.div_accord_camp p{
    font-size: 1.375rem;
    margin-bottom: 1.25rem;
}
.div_accord_camp .prix_grn_box{
    padding: 3.125rem 2.5rem;
    max-width: 40rem;
}
.div_accord_camp .prix_grn_box h3
{
    margin-bottom: 3.75rem;
}

.page_header_wrapper {
    z-index: 1;
    position: relative;
}

.page_header_wrapper.green {
    background-color: var(--moba_green);
}

.page_banner {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.page_banner_inner {
    max-width: 106.25rem;
    margin: 0 auto;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: var(--radius-md);
    min-height: 35.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3.125rem 1.25rem 1.25rem;
}

.page_header_wrapper h1{
    color: #fff;
    font-size: 5.5rem;
    font-weight: 500;
    padding: 3.125rem 1.25rem 1.25rem;
    font-size: 5.5rem;
    font-weight: 500;
    text-align: center;
}

.page_header_wrapper h2 {
    font-size: 3.125rem;
}

.header_content {
    max-width: 62.5rem;
    margin: 0 auto;
    font-size: 2.75rem;
    text-align: center;
}

.header_content::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0.1875rem;
  background: #000;
  pointer-events: none;
}

.header_content.full_bottom_border::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0.1875rem;
  background: #000;
  pointer-events: none;
}

.sec_autres_publicat::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0.1875rem;
  background: #000;
  pointer-events: none;
  margin-top: -3.125rem;
}

.sec_autres_publicat::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0.1875rem;
  background: #000;
  pointer-events: none;
  margin-top: 3.125rem;
}

.header_content h2{
    padding-top: 5rem;
    padding-bottom: 5rem;
    font-weight: 400;
}

.accordion-section {
    padding-bottom:3.125rem;
}

.sec_publ_blog{
    padding: 3.125rem 1.25rem;
    padding-bottom:0;
}
.div_publ_blog{
    text-align: center;
}
.div_publ_blog > p{
    font-size: 1.375rem;
    max-width: 50rem;
    margin: auto;
}
.publicat_grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1.875rem;
    margin-top: 0px;
}
.publicat_grid img{
    width: 100%;
    border-radius: var(--radius-md);
}
.div_publ_blog a{
    font-size: 1.375rem;
    display: inline-block;
    color: #000;
    min-width: 14.375rem;
    height: 100%;
}
.sec_autres_publicat{
    padding: 3.125rem 1.25rem;
    margin-top: 3.125rem;
    margin-bottom:3.125rem;
}
.div_autres_publicat > p{
    font-size: 1.375rem;
    text-align: center;
    margin-bottom: 3.125rem;
}
.sec_restez_connect{
    padding: 2.5rem 1.25rem 2.5rem;
    padding-top:0;
}

.sec_autres_publicat .accordion-css__list {
    gap:1.25rem;
}

.div_restez_connect{
    background:  var(--moba_orange);
    border-radius: var(--radius-md);
    padding: 1.875rem 2.5rem;
}
.div_restez_connect p{
    font-size: 1.375rem;
}
.div_restez_connect h2{
    font-size: 2.75rem;
    margin: 2.5rem 0;
}
.div_restez_connect > div{
    text-align: right;
}

.sec_restez_connect--two-up {
    padding-left: max(6.25rem, calc((100% - 87.5rem) / 2));
    padding-right: max(6.25rem, calc((100% - 87.5rem) / 2));
}
.sec_restez_connect--two-up .div_restez_connect_grid {
    max-width: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.875rem;
}
.div_restez_connect--blue {
    background: var(--moba_blue);
    color: #000;
}
@media (max-width: 1280px) {
    .sec_restez_connect--two-up {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
}
@media (max-width: 960px) {
    .sec_restez_connect--two-up .div_restez_connect_grid {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}
@media (max-width: 640px) {
    .sec_restez_connect--two-up {
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
}

.sec_accord_camp {
    padding-bottom: 9.375rem;
}

.dropdown_menu .animated_menu > li {
  cursor: pointer;
}

.dropdown_menu .animated_menu li:last-child {
    border-bottom:none;
}

.newscontent-column {
    width:50%;
}

.newscontent-column strong{
    font-weight: 500;
}

.newscontent-column ul{
    list-style-type: disc;
    margin-top: 1.25rem;
    margin-left: 1.25rem;
}

.newscontent-column ul li{
    margin-bottom:0.625rem;
}

.newscontent-column iframe,
.newscontent-column figure {
    width:100%;
    border-radius: var(--radius-md);
    margin-bottom:0.625rem;
}

.newscontent {
    padding-top:0.9375rem;
}

/* Inline emphasis keeps the size of its context. The old rule forced every
   <strong> to 30px, so bolding three words inside a sentence blew the line
   up and authors avoided bold altogether. */
.newscontent b,
.newscontent strong {
    font-weight: 600;
    font-size: inherit;
}

/* Key figures are authored as "<strong>10 000</strong><br>libellé": a bold
   that opens the paragraph and is followed by a line break keeps the display
   size, so the stat blocks of already-published articles are untouched. */
.newscontent p > b:first-child:has(+ br),
.newscontent p > strong:first-child:has(+ br) {
    font-size: 1.875rem;
    line-height: 1.15;
}

/* Vertical rhythm. Without this every block sat flush against the next, which
   is why authors were inserting blank paragraphs by hand to get any air. */
.newscontent p,
.newscontent ul,
.newscontent ol,
.newscontent blockquote,
.newscontent figure,
.newscontent iframe {
    margin-bottom: 1.15em;
}

.newscontent h2,
.newscontent h3,
.newscontent h4 {
    font-weight: 600;
    line-height: 1.25;
    margin-top: 1.9em;
    margin-bottom: .55em;
}

/* headings were authored as <h2><strong>…</strong></h2> and rendered at 30px
   through the old bold rule; keeping these sizes leaves them looking the same */
.newscontent h2 { font-size: 1.875rem; }
.newscontent h3 { font-size: 1.5rem; }
.newscontent h4 { font-size: 1.25rem; }

/* space between two flexible-content blocks (text, image, video) */
.newscontent .cc-text,
.newscontent .cc-media {
    margin-bottom: 1.6em;
}

.newscontent .cc-text > *:first-child,
.newscontent-column > *:first-child {
    margin-top: 0;
}

.newscontent .cc-text > *:last-child,
.newscontent .cc-media:last-child,
.newscontent-column > *:last-child {
    margin-bottom: 0;
}

.newscontent p,
.div_coll_beau p,
.newscontent li {
    font-weight: 100;
}

.single-news .div_coll_beau {
    background-color: white;
}

.newscontent-column--single {
    max-width:60rem;
    margin:auto;
    width: auto;
}

.newscontent-column--single  img {
    max-height: 18.75rem;
}

.newscontent p,
.newscontent li span{
    font-size: 1.125rem;
    line-height:1.5
}

.newscontent li {
    margin-left:1.25rem;
}

.newscontent-column--single p {
    font-size:1.5rem;
    font-weight: 100;
}

.footer_content .div_moba_logo p,
.footer_content .div_movia_logo p  {
    margin-bottom:0.9375rem;
}

@media (max-width: 1440px){
    .div_moba_logo{
        padding-right: 2.5rem;
    }
    .div_moba_logo:after{
        right: 0;
    }

    .testimonial_grid {
        max-width: 90%;
    }
}

@media (max-width: 1280px){
    .header_title, .header_lang a{
        font-size: 1.25rem;
    }
    .burger_menu_icon{
        width: 3.75rem;
    }
    .main_header .div_header { min-height: 4.0625rem; }
    .dropdown_menu li a{
        font-size: 3.75rem;
    }
    .div_movia_logo {
        padding-left: 1.25rem;
    }
    .footer_content p, .footer_content ul li a{
        font-size: 1.375rem;
    }
    .footer_content .footer_logo{
        height: 4.6875rem;
    }
    .footer_content .footer_logo img{
        max-width: 100%;
    }

    .accordion_title h2{
        font-size: 2.25rem;
    }
    .accordion_title img{
        max-width: 4rem;
    }
    .events_page_title h1{
        font-size: 4.5rem;
    }

    .grid_events_boxes {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 1.5625rem !important;
    }
    .grid_events_boxes .event_box{
        border-radius: 1.25rem;
    }
    .grid_events_boxes .event_info{
        padding: 0.625rem;
        width: calc(100% - 1.25rem);
    }
    .grid_events_boxes .event_info h2{
        font-size: 1.375rem;
    }
    .grid_events_boxes .event_tags a{
        font-size: 0.875rem;
    }
    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 4.5rem;
    }
    .section_box span {
        font-size: 1.875rem;
    }
    .section_box p {
        font-size: 1.5rem;
        max-width: 51.875rem;
    }
    .section_box {
        padding: 1.875rem 1.25rem 2.5rem;
    }

    .section_box .left_text {
        line-height:0.5;
        margin-top:0;
    }
    .camp_event_tags {
        display: flex;
        gap: 0.625rem;
        flex-wrap: wrap;
        overflow-x: auto;
        margin-bottom: 0.625rem;
    }

    .div_filtres {
        align-items: flex-start;
    }

    .accordion-css {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .div_accord_camp .prix_grn_box {
        width: 100%;
        max-width: -webkit-fill-available;
    }

    .sec_accord_camp {
        padding-bottom: 1.875rem;
    }

    .section_box {
        border-radius: var(--radius-sm);
    }

    .section_box_container {
        margin-top: -5rem;
        margin-bottom: 5rem;
    }

    .section_box .left_text span {
        font-size: 2.5rem;
        font-weight: 100;
    }
    .section_box p {
        font-size: 1.125rem;
        font-weight: 100;
        max-width: 34.375rem;
    }
    .section_box .ta_right{
        text-align: center;
    }
    .section_box h3 {
        font-size: 1.5rem;
        font-weight: 100;
        max-width: 12.5rem;
    }

    .section_box .left_text {
        margin-top:2.5rem;
        margin-bottom:2.5rem;
        font-size:2.5rem;
        font-weight:100;
    }

    .section_box .content {
        flex-direction: column;
    }

    .section_box .content .content_inner:first-child {
        width:100%;
    }

    .section_box .content .content_inner:nth-child(2) {
        width:100%;
        padding-top:0!important;
    }

    .sec_accord_camp {
        padding-bottom: 1.875rem;
    }

    .grid_events_boxes .event_box img{
        transition: filter 2s ease;
    }

    .grid_events_boxes .event_box img.is-activating{
        filter: none;
    }
}

@media (max-width: 960px){
    .section_box .left_text,
    .section_box .left_text span {
        font-size: 2.125rem;
        overflow-wrap: break-word;
    }
    .dropdown_menu li a {
        font-size: 2.625rem;
    }

    .div_coll_beau,
    .div_accord_camp {
        gap: 1.875rem;
        flex-direction: column;
    }

    .footer_content{
        flex-wrap: wrap;
        gap: 1.25rem;
        row-gap: 1.875rem;
    }
    .footer_content > div{
        flex: auto;
        width: calc(50% - 0.625rem);
        padding-left:0;
    }
    .footer_content p, .footer_content ul li a {
        font-size: 1.25rem;
    }
    .div_moba_logo{
        padding-right: 0;
    }
    .footer_content a.cta.btn{
        width: 100%;
        padding: 0;
        border: 0;
    }

    .accordion_title h2{
        font-size: 1.875rem;
    }
    .accordion_title img{
        max-width: 3.125rem;
    }

    .events_page_title h1{
        font-size: 3.375rem;
    }

    .grid_events_boxes {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.25rem !important;
    }
    .grid_events_boxes .event_box{
        min-height: 10rem;
    }
    .grid_events_boxes .event_info h2{
        font-size: 1.25rem;
    }
    .grid_events_boxes .event_tags a{
        font-size: 0.8125rem;
    }

    .grid_projets_boxes{
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }

    .div_content_serv{
        flex-direction: column;
    }

    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 3.5rem;
    }

    .div_coll_beau > div {
        width: 100%;
    }

    .sec_accord_camp .accordion-css {
        padding-left: 0px;
        padding-right: 0px;
        max-width: 100%;
        width: 100%;
    }

        .page-banner h1{
        font-size: 3.625rem;
        font-weight: 500;
        text-align: center;
    }

    .nos_projets_title h1{
        font-size: 3.875rem;
    }

    .div_fiche_content {
        flex-direction: column;
    }

    .sec_fiche_content .left_fiche_content  {
        order: 2;
        padding: 3.125rem;
    }
    .sec_fiche_content .right_fiche_content {
        order: 1;
        width: 80%;
        margin: auto;
    }

    .projet_tags {
        text-decoration: none;
    }

    .nos_campagnes_page .grid_projets_boxes {
        margin-top: 2.5rem;
        padding-top: 0px;
        grid-template-columns: 1fr 1fr !important;
        display: grid !important;
    }
}

@media (max-width: 640px) {
    .no-bg-mobile {
        opacity: 0;
    }

    .burger_menu_icon {
        width: 2.8125rem;
    }
    .header_title, .header_lang a {
        font-size: 1rem;
    }
    .header_title {
        letter-spacing: 0.25rem;
    }

    .main_header .div_header > :nth-child(2) {
        left: 50%;
    }

    .main_header .div_header { min-height: 3.4375rem; }
    .dropdown_menu li a {
        font-size: 2.25rem;
        line-height: 2;
    }

    .footer_content > div {
        width: 100%;
    }

    .div_moba_logo{
        padding-right: 0;
        padding-bottom: 1.875rem;
    }
    .div_moba_logo:after{
        height: auto;
        width: 100%;
        right: 0;
        top: 100%;
        border-bottom: 1px solid #fff;

        display: none;
    }
    .div_movia_logo{
        padding-left: 0;
    }

    .footer_content .footer_logo {
        height: 3.4375rem;
    }
    .footer_content .footer_logo img {
        max-width: 100%;
    }

    .accordion_title h2{
        font-size: 1.5rem;
    }
    .events_page_title h1{
        font-size: 2.25rem;
    }

    .grid_events_boxes {
        grid-template-columns: 1fr !important;
    }
    .grid_events_boxes .event_box{
        min-height: 10rem;
    }
    .grid_events_boxes .event_info h2{
        font-size: 1.125rem;
    }
    .grid_events_boxes .event_tags a{
        font-size: 0.75rem;
    }

    .nos_projets_title{
        padding: 3.75rem 1.25rem;
    }

    .grid_projets_boxes .projet_box .projet_tags li,
    .grid_projets_boxes .projet_box .projet_tags a {
        font-size: 0.75rem;
    }

    .grid_projets_boxes .projet_title {
        margin: 0 0 0.875rem;
        padding: 0;
        font-size: 1rem;
        font-weight: 500;
        line-height: 1.25;
        color: #000;
        text-align: left;
        min-height: 2.5em;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
    }

    .event_sponsor__label {
        font-size: 0.75rem;
    }

    .news_page .accordion-css__item-bottom-content {
        padding-top: 1.2em;
    }

    .news_page .publicat_grid.grid_projets_boxes .projet_box .projet_info h2 {
        font-size: 1rem;
    }
    .nos_projets_title h1{
        font-size: 3rem;
    }
    .grid_projets_boxes {
        grid-template-columns: 1fr;
        column-gap: 1.25rem;
        row-gap: 3.125rem;
        margin-top: 2.5rem;
    }

    .nos_projets_page .grid_projets_boxes .projet_box > a {
        clip-path: inset(0 round 1.5625rem);
        transition: clip-path .45s cubic-bezier(.4, 0, .2, 1);
    }
    .nos_projets_page .grid_projets_boxes .projet_box.is-centered > a {
        clip-path: inset(0 0 20% 0 round 1.5625rem);
    }

    .nos_projets_page .grid_projets_boxes .projet_box .projet_info h2 {
        font-size: 0.9375rem;
    }

    .section_box .left_text,
    .section_box .left_text span {
        font-size:1.5rem;
    }

    .section_box .left_text {
        line-height: 1.15;
        font-weight: 100;
    }
    .section_box .left_text span {
        font-size:1.5rem;
    }

    .white-bg-mobile {
        background-color: #fff;
    }

    .margin-mobile{
        margin-top:-3.125rem;
    }

    .section_box > div {
        margin-top:0;
    }

    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 2.25rem;
    }

    .sec_banner_camp,
    .sec_banner_propos {
        padding: 1.25rem;
    }
    .div_banner_camp,
    .div_banner_camp img,
    .div_banner_propos {
        min-height: 0;
        height: auto;
        aspect-ratio: 1.3;
        object-fit: cover;
    }
    .sec_coll_beau {
        padding-top:0;
        padding-bottom: 0;
    }

    .sec_accord_camp {
        padding-top:1.25rem;
    }

    .camp-event-tag {
        font-size:0.75rem;
    }

    .div_coll_beau h2 {
        font-size: 1.5rem;
    }
    .div_coll_beau > div p {
        font-size:0.875rem;
    }

    .div_coll_beau {
        padding:1.25rem;
    }

    .div_accord_camp {
        gap: 1.25rem;
    }

    .sec_accord_camp .accordion-css__item-bottom-content {
        padding-bottom: 0.8em;
    }

    .div_accord_camp .prix_grn_box h3 {
        font-size:1.5rem;
    }

    .page-banner-img {
        padding: 1.25rem;
        height: auto;
        min-height: auto;
        aspect-ratio: 1.3;
    }

    .div_fiche_content {
        gap: 0.625rem;
    }

    .right_fiche_content h2 {
        font-size:1.5rem;
    }

    .page-banner h1{
        font-size: 2.125rem;
        font-weight: 500;
        text-align: center;
    }
    .nos_projets_title h1{
        font-size: 3rem;
    }
    .right_fiche_content h2{
        font-size: 1.5rem;
    }

    .sec_fiche_content .right_fiche_content {
        width: 90%;
    }

    .sec_fiche_content {
        padding-bottom:1.25rem;
    }

    .right_fiche_content p{
        font-size: 0.875rem;
        font-weight: 100;
    }
    .left_fiche_content h2{
        font-size: 1.5rem;
        line-height: 1.4;
        font-weight: 100;
    }
    .left_fiche_content p{
        font-size: 0.75rem;
    }

    .sec_fiche_content .left_fiche_content {
        padding: 1.875rem 1.25rem 1.875rem 1.25rem;
    }

    .sec_fiche_bottom_img{
        padding-top:1.25rem;
        padding-bottom: 4.375rem;
    }

    .nos_campagnes_page .div_filtres p{
        display: none;
    }

    .nos_campagnes_page .div_toggle_filter {
        padding-bottom: 0;
    }

   .nos_campagnes_page .grid_projets_boxes {
        margin-top:0;
        padding-top: 0;
   }

   .nos_campagnes_page .grid_projets_boxes::before {
        margin-top: -1.25rem;
    }

    .page_header_wrapper .header_content h2 {
        font-size: 1.5rem;
        padding-left:1.25rem;
        padding-right:1.25rem;
        font-weight: 100;
        padding-top: 1.875rem;
        padding-bottom: 1.875rem;
    }

    .header_content::before,
    .header_content.full_bottom_border::after,
    .sec_autres_publicat::before,
    .sec_autres_publicat::after {
        height: 2px;
    }

    .sec_publ_blog .news_subtext,
    .div_autres_publicat > p {
        font-size:1rem;
        font-weight: 100;
        text-align: left;
    }

    .sec_publ_blog {
        padding:1.875rem 1.25rem;
    }

    .sec_publ_blog .grid_projets_boxes {
        margin-top:1.875rem;
    }

    .div_restez_connect h2 {
        font-size: 1.375rem;
        max-width: fit-content;
    }

    .div_restez_connect p {
        font-size:1rem;
        font-weight: 100;
    }

    .div_restez_connect > div {
        justify-self: flex-end;
    }

    .dropdown_menu ul {
        height: calc(var(--vh, 1vh) * 100 - var(--header-offset, 0px));
        overflow-y: auto;
    }

    .dropdown_menu li:last-child {
        border-bottom: none;
    }

    .newscontent-column--single img {
        max-height: 12.5rem;
    }

    .newscontent p > b:first-child:has(+ br),
    .newscontent p > strong:first-child:has(+ br) {
        font-size: 1.5rem;
    }

    .newscontent h2 { font-size: 1.5rem; }
    .newscontent h3 { font-size: 1.25rem; }
    .newscontent h4 { font-size: 1.125rem; }
}

.filter-buttons {
  grid-column-gap: .5em;
  grid-row-gap: .5em;
  flex-flow: wrap;
  justify-content: flex-start;
  display: flex;
}

.filter-btn {
    border:none;
    -webkit-appearance: none;
    appearance: none;
    background-color: white;
    border-radius: 10em;
    padding: .65em 1.25em;
    font-size: 1em;
    transition: color 0.6s cubic-bezier(0.625, 0.05, 0, 1), background-color 0.6s cubic-bezier(0.625, 0.05, 0, 1);
    cursor: pointer;
    height: 3.125rem;
}

.filter-btn[data-filter-status="active"] {
  background-color: var(--moba_orange_warm);
  color: white;
}

.reset-btn {
  outline-offset: -2px;
  color: #c90f0f;
  -webkit-appearance: none;
  appearance: none;
  background-color: #c90f0f0d;
  border-radius: 10em;
  outline: 2px solid #c90f0f;
  padding: .65em 1.25em;
  font-size: 1.5em;
  transition: all 0.6s cubic-bezier(0.625, 0.05, 0, 1);
  opacity: 0;
  visibility: hidden;
}

.reset-btn[data-filter-status="active"] {
  opacity: 1;
  visibility: visible;
}

.filter-list {
  flex-flow: wrap;
  width: 100%;
  display: flex;
}

.filter-list__item {
  width: 25%;
  padding: .75em;
}

.filter-list__item[data-filter-status="active"] {
  transition: opacity 0.6s cubic-bezier(0.625, 0.05, 0, 1), transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);
  transform: scale(1) rotate(0.001deg);
  opacity: 1;
  visibility: visible;
  position: relative;
}
.filter-list__item[data-filter-status="transition-out"] {
  transition: opacity 0.45s cubic-bezier(0.625, 0.05, 0, 1), transform 0.45s cubic-bezier(0.625, 0.05, 0, 1);
  transform: scale(0.9) rotate(0.001deg);
  opacity: 0;
  visibility: visible;
}
.filter-list__item[data-filter-status="not-active"] {
  transform: scale(0.9) rotate(0.001deg);
  opacity: 0;
  visibility: hidden;
  position: absolute;
}

@media screen and (max-width: 991px) {
  .filter-list__item {
    width: 50%;
  }
}

@media screen and (max-width: 767px) {
  .filter-list__item {
    width: 100%;
  }
}

.visually-hidden{ position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }

.btn {
  cursor: pointer;
  border-radius: 1em;
  border-radius: calc(var(--btn-height) * .5);
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: center;
  align-items: center;
  height: 3.125rem;
  padding-left: 1.25em;
  padding-right: 1.25em;
  text-decoration: none;
  display: flex;
  position: relative;
  width: fit-content;
}

.btn__text {
  color: #efede3;
  justify-content: flex-start;
  align-items: center;
  display: flex;
  position: relative;
  transition: color 0.7s cubic-bezier(0.625, 0.05, 0, 1);
}

.btn-text-p {
  color: currentColor;
  white-space: nowrap;
  margin-bottom: 0;
  padding-bottom: .05em;
  font-family: 'Inter';
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.2;
}

.btn__bg {
  background-color: #08181b;
  border-radius: 1.5em;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.btn__image {
  border-radius: 50%;
  width: 2.25em;
  height: 2.25em;
  margin-left: -.75em;
  margin-right: .5em;
  position: relative;
  overflow: hidden;
}

.btn__circle-wrap {
  border-radius: 1.5em;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
}

.btn__circle {
  pointer-events: none;
  background-color: var(--moba_orange);;
  border-radius: 50%;
  width: 200%;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transition: transform 0.7s cubic-bezier(0.625, 0.05, 0, 1), background-color 0.4s cubic-bezier(0.625, 0.05, 0, 1);
  transform: translate(-50%, -50%) scale(0) rotate(0.001deg);
}

.before__100 {
  padding-top: 100%;
  display: block;
}

.btn .btn__text {
  transition: color 0.7s cubic-bezier(0.625, 0.05, 0, 1);
}

.btn:hover .btn__circle {
  transform: translate(-50%, -50%) scale(1) rotate(0.001deg);
}

/* the same fill on a tap (utils.js, bindTapPress); a separate rule because
   main.js deletes every rule mentioning :hover on touch screens */
.btn.is-pressed .btn__circle {
  transform: translate(-50%, -50%) scale(1) rotate(0.001deg);
}

.btn[data-theme="light"] .btn__bg {
  background-color: white;
}

.btn[data-theme="light"] .btn__text {
  color: #031819;
}

.btn[data-theme="light"] .btn__circle {
  background-color: var(--moba_orange);
}

.btn[data-theme="white-black"] .btn__bg {
  background-color: white;
}

.btn[data-theme="white-black"] .btn__text {
  color: black;
}

.btn[data-theme="white-black"] .btn__circle {
  background-color: black;
}

.btn[data-theme="grey"] .btn__bg {
  background-color: var(--moba_grey);
}

.btn[data-theme="grey"] .btn__text {
  color: black;
}

.btn[data-theme="grey"] .btn__circle {
  background-color: var(--moba_orange);
}

.btn[data-theme="white-blue"] .btn__bg {
  background-color: white;
}

.btn[data-theme="white-blue"].active .btn__bg {
  background-color: var(--moba_blue);
}

.btn[data-theme="white-blue"] .btn__text {
  color: black;
}

.btn[data-theme="white-blue"] .btn__circle {
  background-color: var(--moba_blue);
}

.btn[data-theme="dark"],
.btn[data-theme="dark_2"]{
    border: 0.1875rem solid var(--moba_orange);
    border-radius: 3.125rem;
}
.btn[data-theme="dark"] .btn__bg,
.btn[data-theme="dark_2"] .btn__bg {
  background-color: var(--moba_orange);
}

.btn[data-theme="dark"] .btn__text {
  color: #031819;
}

.btn[data-theme="dark"] .btn__circle,
.btn[data-theme="dark_2"] .btn__circle {
  background-color: white
}

[data-flip-element="wrapper"] { position: relative; }

[data-flip-element="wrapper"] { overflow: visible; }

[data-flip-element="wrapper"] {
  position: relative;
  min-height: 1px;
  overflow: visible;
}

[data-flip-element="target"] {
  transform-origin: 0 0;
  will-change: transform;
}

.main_header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  transform: translateY(0);
  opacity: 1;
  transition: transform .3s ease, opacity .3s ease;
}

.main_header.is-hidden {
  transform: translateY(-100%);
  opacity: 0;
}

body.home .main_header,
body.front-page .main_header {
  transform: translateY(-100%);
  opacity: 0;
}

body.home .main_header.is-visible,
body.front-page .main_header.is-visible {
  transform: translateY(0);
  opacity: 1;
}

body:not(.home):not(.front-page) .main_header {
  transform: translateY(0);
  opacity: 1;
}

.accordion-css {
  position: relative;
}

.accordion-css__list {
  grid-column-gap: .5em;
  grid-row-gap: 2em;
  flex-flow: column;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  display: flex;
  position: static;
}

.accordion-css__item {
    border-radius: 3.125rem;
    background: #FFF;
    list-style: none;
}

.accordion-css__item-top {
  grid-column-gap: 1em;
  grid-row-gap: 1em;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  padding: 1em 1em 1em 1.5em;
  display: flex;
}

.accordion-css__item-bottom {
  transition: grid-template-rows 0.6s cubic-bezier(0.625, 0.05, 0, 1);
  grid-template-rows: 0fr;
  display: grid;
  position: relative;
  overflow: hidden;
}

[data-accordion-status="active"] .accordion-css__item-bottom {
   grid-template-rows: 1fr;
}

.accordion-css__item-bottom-wrap {
  flex-flow: column;
  height: 100000%;
  display: flex;
  position: relative;
  overflow: hidden;
}

.accordion-css__item-bottom-content {
  padding-bottom: 1.5em;
  padding-left: 1.5em;
  padding-right: 1.5em;
}

.accordion-css__item-h3 {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 2.75rem;
  font-weight: 200;
  line-height: 1.3;
}

.accordion-css__item-p,
.accordion-css__item-bottom-content li {
  color: var(--moba_text_secondary);
  margin-bottom: 0;
  font-size: 1.375rem;
  line-height: 1.3;
  margin-left: 1.25rem;
  margin-bottom: 0.9375rem;
  font-weight: 100;
}

.accordion-css__item-icon {
  transition: transform 0.6s cubic-bezier(0.625, 0.05, 0, 1);
  background-color: white;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 4em;
  height: 4em;
  display: flex;
  transform: rotate(45deg);
    background-color: transparent;
}

@media (max-width: 640px) {
    .accordion-css__item-h3 {
        font-size:1.5rem!important;
    }
    .accordion-css__item-bottom-content li {
        font-size:1rem;
        font-weight: 100;
        margin-bottom:0.9375rem;
    }

    .accordion-css__item-top {
        height: 1.875rem;
    }

    .accordion-css__item-icon {
        width: 3em;
        height: 3em;
    }

    .accordion-css__list {
        grid-row-gap: 1em;
    }
}

[data-accordion-status="active"] .accordion-css__item-icon {
   transform: rotate(0.001deg);
}

.accordion-css__item-icon-svg {
  width: 4em;
  height: 4em;
}

.accordion-css__item-list {
    list-style: disc;
    list-style-position: outside;
}

.visually-hidden{
  position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.filter-list [data-filter-status="active"]{
  display:block;
  opacity:1; transform:none; transition:opacity .25s ease, transform .25s ease;
}
.filter-list [data-filter-status="not-active"]{ display:none; }
.filter-list [data-filter-status="transition-out"]{
  display:block;
  opacity:0; transform:scale(0.98); pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}

.div_filtres{ margin-bottom:1rem; }
.filter-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    align-items:center; }
.div_filtres > p{
    font-weight:200;
    margin:.25rem 0 .5rem;
}

.visually-hidden{
  position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.filter-list [data-filter-status="active"]{
  display:block;
  opacity:1; transform:none; transition:opacity .25s ease, transform .25s ease;
}
.filter-list [data-filter-status="not-active"]{ display:none; }
.filter-list [data-filter-status="transition-out"]{
  display:block;
  opacity:0; transform:scale(0.98); pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}

@media screen and (max-width: 768px) {
  .ta_right {
    justify-content: center !important;
  }
}

.div_accord_camp .prix_grn_box {
  padding: 1.875rem;
  height: auto;
}

@media (max-width: 640px) {
    .div_accord_camp .accordion-css__list {
        gap: 1.25rem;
    }

    .div_accord_camp {
         gap: 1.25rem;
    }
}

.filters-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    border: 2px solid currentColor;
    border-radius: var(--radius-pill);
    background: transparent;
    cursor: pointer;
    font: inherit;

    width: auto;
    height: 3.125rem;
    padding: 0 1rem;
}

.filters-toggle span{
    padding-left: 0;
}

.filters-toggle__icon {
    transition: transform .25s ease;
    position: static;
}

.filters-toggle[aria-expanded="true"] .filters-toggle__icon {
  transform: rotate(180deg);
}

.nos_campagnes_page .filters-toggle[aria-expanded="true"] .filters-toggle__icon {
    transform: rotate(135deg);
}

.nos_campagnes_page .filters-toggle[aria-expanded="false"] .filters-toggle__icon {
    transform: rotate(90deg);
}

.filters-panel {
  overflow: hidden;
  height: auto;
  transition: height 0.3s ease;
}
.filters-panel.is_closed {
  height: 0 !important;
}

.no-js .filters-panel {
  height: auto !important;
  opacity: 1 !important;
}

.filters-panel.is-open {
  margin-top: 3rem;
}

.fg-acc__content[hidden] { display: none; }

.filter-group {
    display: flex;
}

.fg-acc__header {
    min-width: 12.5rem;
    height: 3.125rem;
    background-color: transparent;
    border: 0;
    display: flex;
    padding-top: 0.5rem;
}

.fg-acc__chev {
    display: none;
}

.filter-group {
    margin-bottom: 1.25rem;
}

@media (max-width: 640px) {
    .filter-group {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 1.25rem;
        border-bottom: 2px solid black;
    }

    .filter-group:last-child {
        border-bottom: none;
        margin-bottom: 0;
    }

    .fg-acc__chev{
        width: 1.875rem;
        height: 1.875rem;
        margin-top: -0.3125rem;
    }

    .fg-acc__title {
        width: 9.375rem;
        display: flex;
    }

    .filter-buttons{
        padding-left: 0;
        padding-right: 0;
        margin-left: 1.5625rem;

        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: center;
    }
    .filter-btn{
        font-size: 1rem;
    }

    .filter-group:first-child {
        border-top: 2px solid black;
        padding-top: 1.25rem;
    }

    .fg-acc__header {
        padding-left: 1.5625rem;
    }

    .sec_filter_nos .fg-acc__header,
    .sec_filter_nos .fg-acc__header .fg-acc__title,
    .sec_filter_nos .fg-acc__header .fg-acc__title span {
        color: #000;
    }

    .div_filter_nos {
        padding-bottom: 0;
        padding-top: 0.625rem;
        padding-bottom: 0.625rem;
        border-top: 2px solid black;
        padding-top: 0.9375rem;
    }

    .fg-acc__chev {
        display: unset;
    }

    .div_filter_nos.open {
        margin-bottom: 0px;
        padding-bottom: 0px;
    }

    .filters-panel.is-open {
        margin-top: 1rem;
    }

    .sec_filter_nos {
        padding-left:0;
        padding-right: 0;
    }

    .fg-acc__content {
        margin-bottom:0px;
    }

    .filters-toggle {
        margin-left:1.25rem;
        margin-right:1.875rem;
    }

    .div_filtres {
        flex-direction: column;
        align-items: start;
        margin-bottom:1.875rem!important;
    }
    .div_filtres p{
        font-size: 1.125rem;
    }

    .grid_projets_boxes {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        margin-top: 3.125rem;
        width: 95%;
        margin-left: auto;
        margin-right: auto;
    }

    .grid_projets_boxes::before {
        margin-top:-3.125rem;
    }

    #filtersPanel { will-change: height; }
}

.left_col_serv .sticky-wrapper {
  position: sticky;
  top: var(--header-offset);
  align-self: start;
  z-index: 2;
}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.filter-list__item[data-filter-status="active"]{display:block;opacity:1;transform:none;transition:opacity .25s ease,transform .25s ease}
.filter-list__item[data-filter-status="not-active"]{display:none}
.filter-list__item[data-filter-status="transition-out"]{display:block;opacity:0;transform:scale(.98);pointer-events:none;transition:opacity .25s ease,transform .25s ease}

[data-mobile-only] { display: none; }
[data-desktop-only] { display: block; }

@media (max-width: 640px) {
  [data-mobile-only] { display: block; }
  [data-desktop-only] { display: none; }
}

.newscontent {
    display: flex;
    margin-top:0;
    background-color: transparent;
}

.newscontent-column img {
    width: 100%;
    object-fit: contain;
    height: min-content;
}

.div_coll_beau h1 {
    font-weight:500;
}

.div_coll_beau h2 {
    font-size:2.75rem;
    font-weight: 100;
}

.page_banner_meta {
    font-weight: 100;
    font-size:1.125rem;
}

@media (max-width: 960px) {
    .single-news .div_coll_beau {
        flex-direction: column;
        gap:1.875rem;
    }

    .newscontent {
        flex-direction: column;
        padding-top:0;
        gap: 0.625rem;
    }

    .newscontent-column {
        width: 100%;
        margin-top: 1.25rem;
    }
}

@media (max-width: 640px) {
    .div_coll_beau h1,
    .div_coll_beau h2 {
        font-size: 1.5rem;
    }

    .newscontent p,
    .div_coll_beau p {
        font-size: 1.125rem!important;
    }

    .single-news .div_coll_beau {
        margin-bottom: 1.25rem;
    }

    .page_banner_meta {
        font-size: 0.75rem;
    }

    .camp_event_tags {
        column-gap: 0.625rem;
        row-gap: 0;
        margin-bottom: 1.25rem;
    }

    .fiche_bottom_img__item {
        width:100%;
    }
}

.div_fiche_bottom_img {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 1rem;
}

.fiche_bottom_img__item {
  margin: 0;
  flex: 0 0 auto;
}

.fiche_bottom_img__img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
}

.fiche_bottom_img__item.fullwidth-row {
  flex: 1 1 100%;
}
.fiche_bottom_img__item.fullwidth-row .fiche_bottom_img__img {
  width: 100%;
  height: auto;
}

.reveal-line {
  display: block;
  overflow: hidden;
}
.reveal-line__inner {
  display: inline-block;
  will-change: transform, opacity;

  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
}

.reveal-line,
.reveal-line__inner {
  font-size: inherit !important;
  font-weight: inherit !important;
  font-style: inherit !important;
  letter-spacing: inherit !important;
  word-spacing: inherit !important;
  text-transform: inherit !important;
}

[data-reveal], .js-reveal, .slideup_reveal {
  visibility: hidden;
}

.page-banner-img .div_fiche_thum { overflow: hidden; }

[data-banner-reveal],
.page-banner-img .div_fiche_thum img {
  will-change: transform, opacity;
  transform-origin: center center;
}

.page-banner-img .div_fiche_thum {
  overflow: hidden;
  border-radius: var(--radius-md);
  will-change: transform;
  height: 100%;
}

.page-banner-img .div_fiche_thum img,
[data-banner-reveal] img {
  display: block;
  width: 100%;
  height: 100%
}

.reveal-block-clip {
  overflow: hidden;
  border-radius: inherit;
}

[data-reveal-block],
.page-banner-img .div_fiche_thum {
  will-change: transform;
}

[data-reveal-block] img {
  will-change: transform;
  transform-origin: center center;
}

@media (max-width: 767px) {
  .grid_projets_boxes .projet_box .projet_info {
    position: static;
    transform: none !important;
    width: 100%;
    background: transparent;
    padding: 0.75rem 0 0;
  }
  .grid_projets_boxes .projet_box .projet_tags {
    margin-bottom: 0;
  }
  .grid_projets_boxes .projet_box .projet_tags ul {
    padding: 0;
  }
  .grid_projets_boxes .projet_box .projet_tags li {
    font-size: 0.75rem;
  }
}

@media (max-width: 767px) {
  .nos_campagnes_page .grid_projets_boxes .projet_box .projet_info {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .footer_content {
    flex-wrap: wrap;
  }

  .footer_content .div_moba_logo,
  .footer_content .div_movia_logo {
    width: 50%;
    flex:1;
  }

  .div_moba_logo {
    padding-right: 1.25rem;
    padding-bottom: 0;
    position: relative;
  }

  .div_mobia_logo {
    padding-left: 1.25rem;
  }

  .div_moba_logo:after {
    height: 100%;
    width: auto;
    right: 0;
    top: 0;
    border-right: 1px solid #fff;
    border-bottom: none;
  }

  .footer_content .btn{
    width:100%;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 1.875rem;
  }

  .footer_content ul li a {
    font-size: 1rem;
    line-height: 1.5;
  }

  .footer_content .div_moba_logo ul,
  .footer_content .div_movia_logo ul{
    margin-top:1.25rem;
  }
}

.btn__icon {
  display: inline-flex;
  align-items: center;
    position: relative;
}

.btn__icon img {
  display: block;
  width: 1.5em;
  height: 1.5em;
}

.sec_filter_nos .filters-toggle,
.sec_filter_nos .filter-btn {
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  box-shadow: none;
  color: #050505;
  margin-bottom: 0.9375rem;
}

.sec_filter_nos .filters-toggle:focus,
.sec_filter_nos .filters-toggle:active,
.sec_filter_nos .filter-btn:focus,
.sec_filter_nos .filter-btn:active {
  outline: none;
  box-shadow: none;
}

@media (hover: hover) and (pointer: fine) {
  .sec_filter_nos .filters-toggle:focus-visible,
  .sec_filter_nos .filter-btn:focus-visible {
    outline: 2px solid #050505;
    outline-offset: 0.1875rem;
  }
}

@media (max-width: 640px) {
  .div_event_home .left_text {
    font-size: 1.25rem;
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
  }
}
@media (max-width: 400px) {
  .div_event_home .left_text {
    font-size: 1.125rem;
  }
}

@media (max-width: 1280px) {
  .div_event_home .left_text.slideup_reveal {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 767px) {
  .btn {
    box-sizing: border-box;
    height: auto;

    min-height: 3em;
    max-width: 100%;
    padding-top: 0.4em;
    padding-bottom: 0.4em;
  }
  .btn .btn__text { max-width: 100%; }
  .btn .btn-text-p {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .btn,
  .btn__bg,
  .btn__circle-wrap {
    border-radius: var(--radius-pill, 624.9375rem);
  }
}

@media (max-width: 767px) {
  .div_event_home .left_text {
    margin-bottom: 0;
  }
}

@media (max-width: 767px) {
  .home .section_box {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .home .section_box > .content {
    margin-top: 0;
  }

  .home .first_section {
    margin-top: 0;
  }
}

@media (max-width: 767px) {
  .dropdown_menu .animated_menu > li {
    height: calc((100dvh - var(--menu-offset, 0px)) / var(--menu-rows, 6)) !important;
    min-height: 0 !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    box-sizing: border-box;
  }
  .dropdown_menu .animated_menu > li > a {
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
    font-size: var(--menu-font, 1.5rem) !important;
    line-height: 1.1;
    white-space: normal;
    text-wrap: balance;
    overflow: visible;
    text-overflow: clip;
  }
}

.news_page .news_listing__viewport {
  overflow: hidden;
}

.news_page .news_pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.875rem;
  margin-top: 3.5rem;
}

.news_page .news_pager .news_pager__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.875rem;
  height: 3.875rem;
  min-width: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: #1D1D1B;
  cursor: pointer;
  transition: opacity .3s ease, transform .3s ease;
}

.news_page .news_pager .news_pager__arrow svg {
  width: 100%;
  height: 100%;
  display: block;
}

.news_page .news_pager .news_pager__arrow:hover:not(:disabled),
.news_page .news_pager .news_pager__arrow:focus-visible:not(:disabled) {
  opacity: .6;
}

.news_page .news_pager .news_pager__arrow[data-news-prev]:hover:not(:disabled) {
  transform: translateX(-0.1875rem);
}

.news_page .news_pager .news_pager__arrow[data-news-next]:hover:not(:disabled) {
  transform: translateX(0.1875rem);
}

.news_page .news_pager .news_pager__arrow:disabled {
  opacity: .25;
  cursor: default;
}

.news_page .news_pager__fallback {
  display: flex;
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 600px) {
  .news_page .news_pager .news_pager__arrow {
    width: 2.75rem;
    height: 2.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .news_page .news_pager .news_pager__arrow {
    transition: none;
  }
}

@media (max-width: 767px) {
  .news_page .news_listing .publicat_grid[data-news-grid] {
    display: flex !important;
    grid-template-columns: none;
    align-items: flex-start;
    margin-top: 0;
    gap: 1rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .news_page .news_listing .publicat_grid[data-news-grid]::-webkit-scrollbar {
    display: none;
  }

  .news_page .news_listing .publicat_grid[data-news-grid] > .projet_box {
    flex: 0 0 78%;
    scroll-snap-align: start;
  }

  .news_page .news_listing .publicat_grid[data-news-grid] > .projet_box > a {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
    overflow: hidden;
  }

  .news_page .news_listing .publicat_grid[data-news-grid] .projet_info h2 {
    min-height: 2.5em;
  }

  .news_page .news_pager {
    margin-top: 1.5rem;
  }

  .news_page .sec_publ_blog {
    padding-bottom: 0;
  }

  .news_page .sec_autres_publicat {
    margin-top: 1.875rem;
  }
}

@media (max-width: 600px) {
  .news_page .news_pager {
    display: none;
  }

}


/* ---------------------------------------------------------------------------
   Project intro (the single rich-text field on a project sheet).

   Everything the WYSIWYG toolbar offers used to be discarded on the way out:
   bold fell back to weight 400 through the global `* { font-weight: 400 }`,
   lists lost their bullets and indent to `* { padding: 0; margin: 0 }`, and
   paragraphs ran into each other. Not one of the 13 published intros uses
   bold, a list or a heading — authors tried, nothing happened, they stopped.

   Only what was missing is declared here. Font sizes for <p> stay with the
   existing .right_fiche_content rules so the 22px / 14px responsive step is
   untouched; the container carries the size so <li> follows the same step.

   Keep this block after the .right_fiche_content rules.
   --------------------------------------------------------------------------- */

.project-intro {
    font-size: 1.375rem;
}

/* vertical rhythm — no more paragraphs glued together */
.project-intro > * + * {
    margin-top: 1.1em;
}

.project-intro > *:first-child { margin-top: 0; }
.project-intro > *:last-child  { margin-bottom: 0; }

/* bold that is actually bold, at the size of its own line */
.project-intro b,
.project-intro strong {
    font-weight: 600;
    font-size: inherit;
}

.project-intro i,
.project-intro em {
    font-style: italic;
}

/* lists get their marker and indent back */
.project-intro ul,
.project-intro ol {
    padding-left: 1.3em;
    max-width: 35.625rem;
}

.project-intro ul { list-style: disc; }
.project-intro ol { list-style: decimal; }

.project-intro li {
    font-size: inherit;
    line-height: 1.4;
    font-weight: 100;
}

.project-intro li + li {
    margin-top: .45em;
}

/* headings distinguishable from body copy — .right_fiche_content h2 is the
   section title of the page, far too large for a heading inside the intro */
.project-intro h2,
.project-intro h3,
.project-intro h4 {
    font-weight: 600;
    line-height: 1.25;
    margin-top: 1.6em;
    margin-bottom: .5em;
}

.project-intro h2 { font-size: 1.875rem; }
.project-intro h3 { font-size: 1.5rem; }
.project-intro h4 { font-size: 1.25rem; }

/* links were styled only inside <p>, so a link in a list came out unstyled */
.project-intro a {
    color: var(--moba_orange);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.project-intro a:hover {
    text-decoration: none;
}

@media (max-width: 640px) {
    .project-intro {
        font-size: 0.875rem;
    }

    .project-intro h2 { font-size: 1.375rem; }
    .project-intro h3 { font-size: 1.125rem; }
    .project-intro h4 { font-size: 1rem; }
}

/* ---------------------------------------------------------------------------
   Pasted content, made harmless.

   Text arrives from Word, Office 365 or ChatGPT wrapped in layers of <span>
   carrying their own classes and inline styles. base.css resets
   `* { font-weight: 400 }`, and that lands on those spans: the <strong> around
   them is bold, the span inside is not, so the bold silently disappears.
   Measured on a published article: 600 on a bare <strong>, 400 inside spans.

   Inside editorial content, an inline element takes its typography from what
   it sits in. The theme owns the type, not the clipboard.
   --------------------------------------------------------------------------- */

.newscontent b *,
.newscontent strong *,
.project-intro b *,
.project-intro strong * {
    font-weight: inherit;
}

.newscontent i *,
.newscontent em *,
.project-intro i *,
.project-intro em * {
    font-style: inherit;
}

.newscontent span,
.newscontent font,
.project-intro span,
.project-intro font {
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    /* the global `* { font-weight: 400 }` lands on every pasted span, so a span
       inside a paragraph rendered heavier than the text around it */
    font-weight: inherit;
}

/* inline styles can only be beaten with !important; a pasted 11pt Calibri has
   no business overriding the article's own type */
.newscontent [style*="font-family"],
.newscontent [style*="font-size"],
.newscontent [style*="font-weight"],
.project-intro [style*="font-family"],
.project-intro [style*="font-size"],
.project-intro [style*="font-weight"] {
    font-family: inherit !important;
    font-size: inherit !important;
    /* editors paste "font-weight: 400" to un-bold, and sometimes 700 to bold.
       Emphasis belongs to <strong>, not to a style attribute. */
    font-weight: inherit !important;
}


/* ---------------------------------------------------------------------------
   Tables in editorial content.

   The theme had no table rules at all, so a table pasted into an article
   rendered with the browser defaults: no borders, no padding, columns
   collapsed onto each other. Authors compensated with width="209" on every
   cell, which then overflowed the column on a phone.
   --------------------------------------------------------------------------- */

.newscontent table,
.project-intro table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.15em;
    font-size: 1rem;
    line-height: 1.4;
    background: #fff;
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.newscontent th,
.newscontent td,
.project-intro th,
.project-intro td {
    padding: 0.625rem 0.875rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid rgba(29, 29, 27, .12);
}

.newscontent thead th,
.project-intro thead th {
    font-weight: 600;
    background: var(--moba_beige, #F5F5F5);
    border-bottom-width: 2px;
}

.newscontent tbody tr:last-child td,
.project-intro tbody tr:last-child td {
    border-bottom: 0;
}

/* a wide table must scroll inside its own column rather than push the page */
@media (max-width: 640px) {
    .newscontent table,
    .project-intro table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ---------------------------------------------------------------------------
   Banner set to keep the image's own proportions.

   Opt-in, one post at a time, through the "Garder la hauteur naturelle de
   l'image" checkbox. Without it a banner crops to its fixed height as before;
   with it the width still fills the container and the height follows the file.
   --------------------------------------------------------------------------- */

.div_banner_camp.banner--natural,
.page-banner-img .div_fiche_thum.banner--natural {
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
}

.div_banner_camp.banner--natural img,
.page-banner-img .div_fiche_thum.banner--natural img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: initial;
}
