/*
Theme Name: MobaMovia
Template: frost
Text Domain: mobamovia
Tags: 
*/

:root {
  --moba_orange: #FF5101;
  --moba_blue : #83DCFF;
  --moba_grey : #E6E6E6;
  --moba_beige : #F5F5F5;
  --moba_green : #8EC89A;
  --moba_light_grey : #EEEDED;
  --menu-rows: 7;
  --event-card-w: min(80vw, 360px);
  --vh: 1vh;
}

*{
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-weight: 400;
}

:focus {
  outline: none;
  box-shadow: none;
}


html {
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

body {
    font-family: inherit;
    overflow-x: hidden;;
}

@media (max-width: 640px) {
    body {
        background-color: var(--moba_grey, #EEEDED);
    }

}

*, *::before, *::after {
  font-family: inherit;
}

html.no-scroll, body.no-scroll {
  overflow: hidden;
  height: 100%;
  overscroll-behavior: none; 
}

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

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

button,
input,
select,
textarea {
  font: inherit;
}

pre, code, kbd, samp {
  font-family: inherit;
}

svg, svg * {
  font-family: inherit;
}

h3 {
    font-size: 22px;
}

.wpcf7, .wpcf7 * {
  font-family: inherit;
}

body.menu_open {
    overflow: hidden;
}

.camp_event_page{
    background: #F5F5F5;
}

a{
    text-decoration: none;
}

ul{
    list-style: none;
}

.max_container{
    max-width: 1400px; 
    margin: 0 auto;
}

.fixed_container{
    max-width: 1360px; 
    margin: 0 auto;
}

.ta_right{
    text-align: right;
    display: flex;
    justify-content: flex-end;
}
.d_flex{
    display: flex;
}

.moba-page {
    margin-top:calc( var(--header-offset) - 1px);
}

.giant404 {
    font-size: 100px;
    font-weight: bold;
    text-align: center;
    margin-top: 100px;
    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: 20px;
    background-color: #fff;
    border-bottom: 2px solid #000; 
    z-index: 999;
}
.div_header{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.burger_menu_icon{
    display: block;
}
.close_menu_icon{
    display: none;
}
.burger_menu_icon, .close_menu_icon{
    border-radius: 50%;
    cursor: pointer;
}
.main_header.menu_open .burger_menu_icon{
    display: none;
}
.main_header.menu_open .close_menu_icon{
    display: block;
}
.header_title, .header_lang a{
    font-size: 24px;
    font-weight: 600;
    color:black;
}
.header_title{
    letter-spacing: 12px;
}

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

/* Header layout */
.main_header .div_header {
  display: grid;
  grid-template-columns: 1fr auto 1fr; /* left | center | right */
  align-items: center;
}

/* Left block (burger) */
.main_header .div_header > :first-child {
  justify-self: start;
}

/* Right block (language switcher) */
.main_header .div_header > :last-child {
  justify-self: end;
}

/* Center title */
.main_header .header_title {
  justify-self: center;
  position: static;      /* remove absolute */
  transform: none;       /* remove translate */
  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;              /* start hidden; JS animates to 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: 72px;
    font-weight: 500;
    line-height: 1.5;
    display: block;
    margin-left:19vw;
    padding: 0 20px;
    position: relative;
    white-space: nowrap;        /* no wrapping */
    overflow: hidden;           /* hide overflow */
    text-overflow: ellipsis; 
}
.dropdown_menu li a:before{
    content: '';
    position: absolute;
    left: -100px;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 72px;
    height: 72px;
    border-radius: 50%;
}

/* base link */
.dropdown_menu li a {
  position: relative;
}

/* circle */
.dropdown_menu li a::before {
  content: "";
  position: absolute;
  left: -6.5rem;                /* tweak if you want it closer/further */
  top: 50%;
  transform: translateY(-50%);
  width: 65px;
  height: 65px;
  border-radius: 50%;
  border: 2px solid #fff;       /* outline so you see it even before hover */
  background: transparent;
  opacity: 0;                   /* hidden by default */
  transition:
    opacity .3s ease,
    background-color .3s ease;
  pointer-events: none;
}

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

/* circle + text on hover */
.dropdown_menu li:hover a {
  color: #fff;
  overflow: visible;
}

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


:root {
  --menu-rows: 7;        
  --vpad: 40px;          
  --row-gap: 0px;       
  --lh: 1.2;   
}
.dropdown_menu .animated_menu > li {  
  height: calc((100vh - var(--header-offset, 0px)) / var(--menu-rows));
  display: flex;
  align-items: center;
}

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

@media (max-width: 1280px){
    .dropdown_menu .animated_menu > li > a {
        font-size: 48px;
        margin-left: 60px;
    }
    .dropdown_menu .animated_menu > li {
        padding-top:0!important;
        height: calc((100vh - var(--header-offset)) / 7);
    }
}
@media (max-width: 960px) {
    .dropdown_menu .animated_menu > li > a {
        margin-left: 0;
        font-size: 40px;
        text-wrap: auto;
    }
}
@media (max-width: 880px) {
    .dropdown_menu .animated_menu > li > a {
        margin-left: 0;
        font-size: 32px;
        text-wrap: auto;
    }
}

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

}

.dropdown_menu li:hover a{
    color: #fff;
}
 
.section_box_container{
    padding-left:20px;
    padding-right:20px;
}

.section_box {
    max-width: 1700px; 
    margin: 0 auto;
}

.section_box{
    padding: 30px 30px 40px;
    overflow: hidden;
}
.section_box span{
    font-size: 22px;
}
.section_box .left_text{
    font-size: 44px;
    margin: 20px 0 0;
    max-width: 1040px;
}
.section_box > div{
    margin-top: 30px;
    border-radius: 25px;
} 

.section_box span {
    font-size: 44px;
}

.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%;
}

.sec_banner_propos{
    padding: 40px 20px;
}

.div_banner_propos{
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: 25px;
    height: 570px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.div_banner_propos h1,
.page_header_wrapper h1 {
    color: #fff;
    font-size: 88px;
    font-weight: 500;
}

@media (max-width: 1600px){
    .div_banner_propos{
        height: 480px;
    }
}


.desc-line  { overflow: hidden; }      /* SplitText wraps each line with this class */
.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; /* above content */
}

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

.admin-bar .main_header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .main_header { top: 46px; }
}

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

/* Generic layout */
:where([data-reveal-scope]) { position: relative; border-radius: 16px; overflow: hidden; }
:where([data-reveal-scope] > :not(.bg)) { position: relative; z-index: 1; }

/* Default background via CSS var (fallback) */
:where([data-reveal-scope]) { --section-bg: var(--moba_blue, #1e5bd6); }

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

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

  /* color fallback kept separate so it doesn't reset the others */
  background-color: var(--section-bg, transparent);
}

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

/* Optional: gradients too */
: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: 50px 20px 30px;
    color: #fff;
}

.footer_content{
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 30px;
}

.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: 16px;
    margin-bottom: 20px;
}
.footer_content ul li{
    line-height: 2;
}
.footer_content ul li a{
    color: #fff;
    font-size: 16px;
}
.footer_content ul li a:hover{
    color:  var(--moba_orange);
}
.footer_content .footer_logo{
    display: block;
    height: 140px;
    display: flex;
    align-items: flex-end;
    margin-bottom: 40px;
}
.footer_content .footer_logo img{
    width: 100%;
    height: auto;
}
.footer_copyright{
    margin-top: 30px;
}
.footer_copyright p{
    font-size: 15px;
    font-weight: 600;
}

.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: 275px;
}
.div_movia_logo{
    padding-left: 40px;
}
.div_movia_logo img{
    max-width: 320px;
}

.nos_projets_page {
    background: rgba(131,220,255,0.5);
}
.nos_projets_title{
    padding: 50px 20px 20px;
    display: flex;
    justify-content: center;
}
.nos_projets_title h1{
    font-size: 88px;
    font-weight: 500;
    text-align: center;
}

.page-banner{
    padding: 50px 20px 40px;
    border-bottom: 2px solid black;
}
.page-banner h1{
    font-size: 88px;
    font-weight: 500;
    text-align: center;
}

.projet_tags{
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 20px;
}
.projet_tags ul{
    display: flex;
    flex-wrap: wrap;
    column-gap: 15px;
    row-gap: 5px;
}
.projet_tags a{
    font-size: 16px;
}

.page-banner-img{
    padding: 30px 20px;
    padding-top:30px;
    height:575px;
}
.div_fiche_thum img,
.fiche_bottom_img__item img
{
    width: 100%;
    border-radius: 25px;
    height:575px;
    object-fit: cover;
}

.right_fiche_content {
    padding-top:30px;
    padding-bottom: 30px;
}

.right_fiche_content h2{
    font-size: 44px;
    margin: 50px 0;
}

.right_fiche_content p{
    font-size: 22px;
    max-width: 570px;
    line-height: 1.4;
    font-weight: 100;
}

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

.left_fiche_content h2{
    margin: 50px 0;
    line-height: 1.4;

    font-size: clamp(20px, 6cqw, 44px); 
    text-wrap: balance;     
    overflow-wrap: anywhere;
}
.left_fiche_content p{
    font-size: 22px;
}

.sec_fiche_content{
    padding: 30px 20px;
    padding-top:0;
}

.sec_fiche_bottom_img{
    padding: 30px 20px 50px;
}

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

.sec_filter_nos{
    padding: 20px 20px 40px;
}
.div_filter_nos{
    padding-bottom: 30px;
}

.div_toggle_filter{
    padding: 20px 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: 20px;

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

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

.div_filtres p{
    min-width:200px;
}


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

.div_filtres p{
    font-size: 16px;
}
.div_filtres ul{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.div_filtres ul li a{
    font-size: 16px;
    background: #fff;
    border-radius: 20px;
    padding: 5px 12px;
}
.div_filtres ul li.selected a{
    background: #EA5B0C;
}

.grid_events_boxes{
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px;
    padding-top: 40px;
}
.grid_events_boxes .event_box {
    width: 100% ;
    background: #fff;
    padding: 10px 0;

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

    filter: grayscale(100%);
    transition: filter 0.3s ease;
}
.grid_events_boxes .event_box:hover img{
    filter: none;
}
.grid_events_boxes .event_info{
    width: calc(100% - 40px);
    z-index: 1;
}
.grid_events_boxes .event_info h2{
    font-size: 24px;
}
.grid_events_boxes .event_info a{
    color: #000;
    transition: color 0.3s ease-in-out;
}
.grid_events_boxes .event_info a:hover{
    color: #EA5B0C;
}
.grid_events_boxes .event_tags a{
    font-size: 15px;
}
.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: 50px 20px;
    border: solid #000;
    border-width: 2px 0;
}
.grid_projets_boxes{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 50px;
}

.grid_projets_boxes .projet_box{
    position: relative;
    overflow: hidden;
    border-radius: 25px;
    width: 100% !important;
    padding: 0;
    aspect-ratio: 1.3;
}

.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{
  aspect-ratio: auto;
  height: auto;
  display: flex;
  flex-direction: column;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box > a{
  display: block;
  height: auto;
  align-items: initial;
}

.news_page .publicat_grid.grid_projets_boxes .projet_box > a img{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}

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

.nos_campagnes_page .projet_box a img {
    max-width: calc(100% - 20px);
    max-height: calc(100% - 60px);
    object-fit: contain;
}

.grid_projets_boxes .projet_box .projet_info{
    position: absolute;
    left: 0;
    bottom: 0;
    width: calc(100% - 40px);
    background-color: #ffffffcc;
    padding: 20px;
    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: 32px;
    font-weight: 500;
}

.div_plus_projets{
    padding: 40px 20px;
    text-align: center;
}
.div_plus_projets a{
    display: inline-block;
    font-size: 32px;
    color: #000;
    background: #fff;
    border-radius: 40px;
    padding: 20px 80px;
}

/* Fiche Projet Page CSS */
.beige_page{
    background-color: var(--moba_beige);
}

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

.div_fiche_content{
    display: flex;
    gap: 50px;
}
.div_fiche_content > div{
    flex: 1;
}
.left_fiche_content{
    background: #83DCFF;
    border-radius: 25px;
    padding: 30px;
}

.div_fiche_bottom_img img{
    width: 100%;
    border-radius: 25px;
}

/* Campaign and Event Page CSS */
/* =========================== */

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

.sec_accord_camp .accordion-css__item-h3 {
    font-size: 38px;
}

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

.prix_grn_box{
    background: #8EC89A;
    padding: 30px;
    border-radius: 25px;
    /* margin-top: 50px; */
}
.prix_grn_box p{
    font-size: 22px;
}
.prix_grn_box h3{
    font-size: 44px;
    font-weight: 400;
    margin: 60px 0 40px;
}
.prix_grn_box a{
    font-size: 16px;
    background: #fff;
    border-radius: 20px;
    padding: 10px 20px;
    display: inline-block;
    color:black;
}

.sec_banner_camp{
    padding: 30px 20px;
    padding-bottom:0px;
}
.div_banner_camp img {
    width: 100%;
    border-radius: 25px;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.div_coll_beau,
.newscontent {
    background: #83DCFF;
    padding: 50px;
    border-radius: 25px;
    max-width: 100%;
    display: flex;
    gap: 80px;
}
.div_coll_beau > div{
    flex: 1;
    width: 50%;
    font-size:22px;
}

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

.div_coll_beau h1{
    font-size: 44px;
    padding-top:30px;
}

.sec_accord_camp,
.sec_coll_beau {
    padding: 30px 20px ;
    padding-top:15px;
    padding-bottom:15px;
}

.div_accord_camp{
    display: flex;
    gap: 40px;
    align-items: start;
}

.div_accord_camp a {
    font-weight: 100;
}
.div_accord_camp > div{
    flex: 1;
}
.div_accord_camp p{
    font-size: 22px;
    margin-bottom: 20px;
}
.div_accord_camp .prix_grn_box{
    padding: 50px 40px;
    max-width: 640px;
}
.div_accord_camp .prix_grn_box h3
{
    margin-bottom: 60px;
}


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

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


.page_banner {
    padding-top: 40px;
    padding-bottom: 40px;
}

.page_banner_inner {
    max-width: 1700px; 
    margin: 0 auto;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    border-radius: 25px;
    min-height: 570px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 50px 20px 20px;
}

.page_header_wrapper h1{
    color: #fff;
    font-size: 88px;
    font-weight: 500;
    padding: 50px 20px 20px;
    font-size: 88px;
    font-weight: 500;
    text-align: center;
}

.page_header_wrapper h2 {
    font-size: 50px;
}

.header_content {
    max-width: 1000px;
    margin: 0 auto;
    font-size: 44px;
    text-align: center;
}

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

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

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

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

.header_content h2{
    padding-top: 80px;
    padding-bottom: 80px;
    font-weight: 400;
}

.accordion-section {
    padding-bottom:50px;
}

.sec_publ_blog{
    padding: 50px 20px;
    padding-bottom:0;
}
.div_publ_blog{
    text-align: center;
}
.div_publ_blog > p{
    font-size: 22px;
    max-width: 800px;
    margin: auto;
}
.publicat_grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 30px;
    margin-top: 0px;
}
.publicat_grid img{
    width: 100%;
    border-radius: 25px;
}
.div_publ_blog a{
    font-size: 22px;
    display: inline-block;
    color: #000;
    min-width: 230px;
    height: 100%;
}
.sec_autres_publicat{
    padding: 50px 20px;
    margin-top: 50px;
    margin-bottom:50px;
}
.div_autres_publicat > p{
    font-size: 22px;
    text-align: center;
    margin-bottom: 50px;
}
.sec_restez_connect{
    padding: 40px 20px 40px;
    padding-top:0;
}

.sec_autres_publicat .accordion-css__list {
    gap:20px;
}

.div_restez_connect{
    background:  var(--moba_orange);
    border-radius: 25px;
    padding: 30px 40px;
}
.div_restez_connect p{
    font-size: 22px;
    
}
.div_restez_connect h2{
    font-size: 44px;
    margin: 40px 0;
    max-width: calc(100% - 200px);
}
.div_restez_connect > div{
    text-align: right;
}

.sec_accord_camp {
    padding-bottom: 150px; 
}

.dropdown_menu .animated_menu > li {
  cursor: pointer;
    height: calc(
    (var(--vh, 1vh) * 100 - var(--header-offset, 0px) - 30px)
    / var(--menu-rows)
    );
}

.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: 20px;
    margin-left: 20px;
}

.newscontent-column ul li{
    margin-bottom:10px;
}

.newscontent-column iframe,
.newscontent-column figure {
    width:100%;
    border-radius: 25px;
    margin-bottom:10px;
}

.newscontent {
    padding-top:15px;
}

.newscontent b,
.newscontent strong {
    font-weight: 600;  
    font-size:30px;
    margin-bottom:10px;
}

.newscontent p:has(b),
.newscontent p:has(strong) {
  margin-bottom: 1.5rem; /* or whatever margin you want */
}

.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: 300px;
}

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

.newscontent li {
    margin-left:20px;
}

.newscontent-column--single p {
    font-size:24px;
    font-weight: 100;
}

.footer_content .div_moba_logo p,
.footer_content .div_movia_logo p  {
    margin-bottom:15px;
}

@media (max-width: 1440px){

    .div_moba_logo{
        padding-right: 40px;
    }
    .div_moba_logo:after{
        right: 0;
    }

    .testimonial_grid {

        max-width: 90%;
    }
}


/* Laptop */
@media (max-width: 1280px){

    .header_title, .header_lang a{
        font-size: 20px;
    }
    .burger_menu_icon, .close_menu_icon{
        width: 60px;
    }
    .dropdown_menu li a{
        font-size: 60px;
    }
    .div_movia_logo {
        padding-left: 20px;
    }
    .footer_content p, .footer_content ul li a{
        font-size: 22px;
    }
    .footer_content .footer_logo{
        height: 75px;
    }
    .footer_content .footer_logo img{
        max-width: 180px;
    }

    .accordion_title h2{
        font-size: 36px;
    }
    .accordion_title img{
        max-width: 64px;
    }
    .events_page_title h1{
        font-size: 72px;
    }

    .grid_events_boxes {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 25px !important;
    }
    .grid_events_boxes .event_box{
        border-radius: 20px;
    }
    .grid_events_boxes .event_info{
        padding: 10px;
        width: calc(100% - 20px);
    }
    .grid_events_boxes .event_info h2{
        font-size: 22px;
    }
    .grid_events_boxes .event_tags a{
        font-size: 14px;
    }
    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 72px;
    }
    .section_box span {
        font-size: 30px;
    }
    .section_box p {
        font-size: 24px;
        max-width: 830px;
    }
    .section_box {
        padding: 30px 20px 40px;
    }

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

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

    .accordion-css {
        padding-left: 20px;
        padding-right: 20px;
    }

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

    .sec_accord_camp {
        padding-bottom: 30px;
    }

    .section_box {
        border-radius: 15px;
    }

    .section_box_container {
        margin-top: -80px;
        margin-bottom: 80px;
    }

    .section_box .left_text span {
        font-size: 40px;
        font-weight: 100;
    }
    .section_box p {
        font-size: 18px;
        font-weight: 100;
        max-width: 550px;
    }
    .section_box .ta_right{
        text-align: center;
    }
    .section_box h3 {
        font-size: 24px;
        font-weight: 100;
        max-width: 200px;
    }

    .section_box .left_text {
        margin-top:40px;
        margin-bottom:40px;
        font-size:48px;
    }

    .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: 30px;
    }

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

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

/*--------Tablet----------*/
@media (max-width: 960px){
    .dropdown_menu li a {
        font-size: 42px;
    }

    .div_coll_beau,
    .div_accord_camp {
        gap: 30px;
        flex-direction: column;
    }

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

    .accordion_title h2{
        font-size: 30px;
    }
    .accordion_title img{
        max-width: 50px;
    }

    .events_page_title h1{
        font-size: 54px;
    }

    .grid_events_boxes {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
    .grid_events_boxes .event_box{
        min-height: 160px;
    }
    .grid_events_boxes .event_info h2{
        font-size: 20px;
    }
    .grid_events_boxes .event_tags a{
        font-size: 13px;
    }

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

    .div_content_serv{
        flex-direction: column;
    }

    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 56px;
    }

    .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: 58px;
        font-weight: 500;
        text-align: center;
    }

    .nos_projets_title h1{
        font-size: 62px;
    }

    .div_fiche_content {
        flex-direction: column;
    }

    .sec_fiche_content .left_fiche_content  { 
        order: 2; 
        padding: 50px;
    }
    .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: 40px;
        padding-top: 0px;
        grid-template-columns: 1fr 1fr !important;
        display: grid !important;
    }
}

@media (max-width: 640px) {

    .home .sec_footer {
        margin-top: -50px;
    }

    .no-bg-mobile {
        opacity: 0;
    }

    .burger_menu_icon, .close_menu_icon {
        width: 45px;
    }
    .header_title, .header_lang a {
        font-size: 16px;
    }
    .header_title {
        letter-spacing: 10px;
    }
    .dropdown_menu li a {
        font-size: 36px;
        line-height: 2;
    }

    .footer_content > div {
        width: 100%;
    }

    .div_moba_logo{
        padding-right: 0;
        padding-bottom: 30px;
    }
    .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 img {
        max-width: 150px;
    }

    .accordion_title h2{
        font-size: 24px;
    }
    .events_page_title h1{
        font-size: 36px;
    }

    .grid_events_boxes {
        grid-template-columns: 1fr !important;
    }
    .grid_events_boxes .event_box{
        min-height: 160px;
    }
    .grid_events_boxes .event_info h2{
        font-size: 18px;
    }
    .grid_events_boxes .event_tags a{
        font-size: 12px;
    }

    .nos_projets_title h1{
        font-size: 48px;
    }
    .grid_projets_boxes {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 40px;
    }

        .sec_banner_propos {
        padding: 30px 20px;
    }

    .section_box .left_text,
    .section_box .left_text span {
        font-size:24px;
    }
    .section_box .left_text span {
        font-size:24px;
    }

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

    .margin-mobile{
        margin-top:-50px;
    }

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

    .div_banner_propos h1,
    .page_header_wrapper h1 {
        font-size: 36px;
    }

    .div_banner_propos{
        height:auto;
        min-height: auto;
        aspect-ratio: 1.3;
    }

    .div_banner_camp img {
        height: 350px;
        object-fit: cover;
    }
    
    .sec_banner_camp {
        padding-bottom:20px;
        padding-top:20px;
    }
    .sec_coll_beau {
        padding-top:0;
        padding-bottom: 0;
    }

    .sec_accord_camp {
        padding-top:20px;
    }

    .camp-event-tag {
        font-size:12px;
    }

    .div_coll_beau h2 {
        font-size: 24px;
    }
    .div_coll_beau > div p {
        font-size:14px;
    }

    .div_coll_beau {
        padding:20px;
    }

    .div_accord_camp {
        gap: 20px;
    }

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

    .div_accord_camp .prix_grn_box h3 {
        font-size:24px;
    }

    .page-banner-img {
        padding-bottom:0;
        padding-top:20px;
        height: auto;
        min-height: auto;
        aspect-ratio: 1.3;
    }

    .div_fiche_content {
        gap: 10px;
    }

    .right_fiche_content h2 {
        font-size:24px;
    }

    .page-banner h1{
        font-size: 34px;
        font-weight: 500;
        text-align: center;
    }
    .nos_projets_title h1{
        font-size: 48px;
    }
    .right_fiche_content h2{
        font-size: 24px;
    }

    .sec_fiche_content .right_fiche_content {
        width: 90%;
    }

    .sec_fiche_content {
        padding-bottom:20px;
    }

    .right_fiche_content p{
        font-size: 14px;
        font-weight: 100;
    }
    .left_fiche_content h2{
        font-size: 24px;
        line-height: 1.4;
        font-weight: 100;
    }
    .left_fiche_content p{
        font-size: 12px;
    }

    .sec_fiche_content .left_fiche_content {
        padding: 30px 20px 30px 20px;
    }

    .sec_fiche_bottom_img{
        padding-top:20px;
        padding-bottom: 70px;
    }

    .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: -20px;
    }

    .page_header_wrapper .header_content h2 {
        font-size: 24px;
        padding-left:20px;
        padding-right:20px;
        font-weight: 100;
        padding-top: 30px;
        padding-bottom: 30px;
    }

    .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:16px;
        font-weight: 100;
        text-align: left;
    }

    .sec_publ_blog {
        padding:30px 20px;
    }   

    .sec_publ_blog .grid_projets_boxes {
        margin-top:30px;
    }

    .div_restez_connect h2 {
        font-size: 22px;
        max-width: fit-content;
    }

    .div_restez_connect p {
        font-size:16px;
        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: 200px;
    }

    .newscontent b,
    .newscontent strong {
        font-weight: 600;  
        font-size:24px;
        margin-bottom:10px;
    }
}

.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: 50px;
}

.filter-btn[data-filter-status="active"] {
  background-color: #EA5B0C;
  color: white;
}

/* Reset Button */
.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: 50px;
  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: 22px;
  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);
}

/* Light */
.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);
}

/* White - Black */

.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;
}

/* Grey */

.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);
}

/* White-Blue */

.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);
}

/* Primary */

.btn[data-theme="dark"],
.btn[data-theme="dark_2"]{
    border: 3px solid var(--moba_orange);
    border-radius: 50px;
}
.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; /* gets overridden to a frozen height in JS */
  overflow: visible; /* avoid clipping the image during fit */
}

[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;
}

/* Hidden state (used on the front page before reveal) */
.main_header.is-hidden {
  transform: translateY(-100%);
  opacity: 0;
}

/* Front page: start hidden; becomes visible when JS adds .is-visible */
body.home .main_header,
body.front-page .main_header {
  /* start hidden, JS will toggle classes */
  transform: translateY(-100%);
  opacity: 0;
}

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

/* Non-home: always visible without any scroll logic required */
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: 50px;
    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: 44px;
  font-weight: 200;
  line-height: 1.3;
}

.accordion-css__item-p,
.accordion-css__item-bottom-content li {
  color: #2c2c2c;
  margin-bottom: 0;
  font-size: 22px;
  line-height: 1.3;
  margin-left: 20px;
  margin-bottom: 15px;
  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:24px!important;
    }
    .accordion-css__item-bottom-content li {
        font-size:16px;
        font-weight: 100;
        margin-bottom:15px;
    }

    .accordion-css__item-top {
        height: 30px;
    }

    .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;
}

/* Item visibility + small fade */
.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: 30px;
  height: auto;
}

:root{ --slide-w: 88vw; }
:root { --t-card-w: 88vw; } 
:root { --t-card-w: min(90vw, 680px); } /* tune width */

@media (max-width: 640px) {

    .div_accord_camp .accordion-css__list {
        gap: 20px;
    }

    .div_accord_camp {
         gap: 20px;
    }
}

.filters-toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border: 2px solid currentColor;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    width: 140px;
    height: 50px;
}

.filters-toggle span{    
    padding-left: 20px;
}

.filters-toggle__icon {
    transition: transform .25s ease;
    position: relative;
    right: -15px;
}

.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);
}

/* The sliding panel */
.filters-panel {
  overflow: hidden;
  transition: max-height .35s ease, opacity .25s ease;
  max-height: 0;
  opacity: 0;
}

/* JS will set an inline max-height when open; this class is for no-JS fallback */
.no-js .filters-panel {
  max-height: none !important;
  opacity: 1 !important;
}

/* Optional spacing when open */
.filters-panel.is-open {
  margin-top: 3rem;
}

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

.filter-group {
    display: flex;
}

.fg-acc__header {
    min-width: 200px;
    height: 50px;
    background-color: transparent;
    border: 0;
    display: flex;
    padding-top: 8px;
}

.fg-acc__chev {
    display: none;
}

.filter-group {
    margin-bottom: 20px;
}

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

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

    .fg-acc__chev{
        width: 30px;
        height: 30px;
        margin-top: -5px;
    }

    .fg-acc__title {
        width: 150px;
        display: flex;
    }

    .filter-buttons{
        padding-left: 0;
        padding-right: 0;
        margin-left: 25px;
        flex-wrap: unset;
        gap: 1rem;
        align-items: flex-start;
        flex-direction: column;
        align-content: flex-start;
    }
    .filter-btn{
        font-size: 16px;
    }

    /* Top border on the first one */
    .filter-group:first-child {
        border-top: 2px solid black;
        padding-top: 20px;
    }

    .fg-acc__header {
        padding-left: 25px;
    }

    .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: 10px;
        padding-bottom: 10px;
        border-top: 2px solid black;
        padding-top: 15px;
    }

    .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:20px;
        margin-right:30px;
    }

    .div_filtres {
        flex-direction: column;
        align-items: start;
        margin-bottom:30px!important;
    }
    .div_filtres p{
        font-size: 18px;
    }

    .grid_projets_boxes {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 50px;
        width: 95%;
        margin-left: auto;
        margin-right: auto;
    }

    .grid_projets_boxes::before {
        margin-top:-50px;
    }

    #filtersPanel { will-change: max-height, opacity; }
}

.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}

/* taxonomy filter visibility */
.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}

/* default: desktop/tablet */
[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:44px;
    font-weight: 100;
}

.page_banner_meta {
    font-weight: 100;
    font-size:18px;
}

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

    .newscontent {
        flex-direction: column;
        padding-top:0;
        gap: 10px;
    }

    .newscontent-column {
        width: 100%;
        margin-top: 20px;
    }
}

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

    .newscontent p,
    .div_coll_beau p {
        font-size: 18px!important;
    }

    .single-news .div_coll_beau {
        margin-bottom: 20px;
    }

    .page_banner_meta {
        font-size: 12px;
    }

    .camp_event_tags {
        column-gap: 10px;
        row-gap: 0;
        margin-bottom: 20px;
    }

    .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;
}

/* add once to your theme */
.reveal-line { 
  display: block;
  overflow: hidden;
}
.reveal-line__inner {
  display: inline-block;
  will-change: transform, opacity;
}
/* avoid FOUC on elements waiting to animate */
[data-reveal], .js-reveal, .slideup_reveal {
  visibility: hidden; /* optional FOUC guard */
}

/* Mask the slide-up */
.page-banner-img .div_fiche_thum { overflow: hidden; }

/* Smooth GPU transforms on the image */
[data-banner-reveal], 
.page-banner-img .div_fiche_thum img {
  will-change: transform, opacity;
  transform-origin: center center;
}

/* Ensure rounded corners from the very first frame */
.page-banner-img .div_fiche_thum {
  overflow: hidden;
  border-radius: 25px;      /* same radius as your img */
  will-change: transform;
  height: 100%;
}

/* Smooth zoom on the image, with proper clipping */
.page-banner-img .div_fiche_thum img,
[data-banner-reveal] img {
  display: block;
  width: 100%;
  height: 100%
}

/* wrapper stays rounded from first paint */
.reveal-block-clip {
  overflow: hidden;
  border-radius: inherit; /* picks up your existing radius */
}

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

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

/* =============================== */
/* CARDS: DESKTOP HOVER vs MOBILE  */
/* =============================== */


/* Mobile / touch: no slide at all, static info block */
@media (max-width: 640px) {
  .grid_projets_boxes .projet_box .projet_info {
    display: none;
  }
}

/* Mobile footer: show the two logos side-by-side */
@media (max-width: 640px) {

  .footer_content {
    flex-wrap: wrap;
  }

  /* Make the two logo blocks half width each */
  .footer_content .div_moba_logo,
  .footer_content .div_movia_logo {
    width: 50%;
    flex:1;
  }

  /* Adjust padding & restore vertical divider between them */
  .div_moba_logo {
    padding-right: 20px;
    padding-bottom: 0;
    position: relative;
  }

  .div_mobia_logo { /* typo guard just in case */
    padding-left: 20px;
  }

  .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: 30px;
  }

  .footer_content ul li a {
    font-size: 16px;
    line-height: 1.5;
  }

  .footer_content .div_moba_logo ul, 
  .footer_content .div_movia_logo ul{
    margin-top:20px;
  }
}

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

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

/* --- Campagnes filters: normalize buttons on iOS --- */
.sec_filter_nos .filters-toggle,
.sec_filter_nos .filter-btn {
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent; /* remove grey/blue tap flash */
  outline: none;
  box-shadow: none;
  color: #050505;          /* your text color */
}

/* remove iOS blue outline when tapped */
.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;
}

/* (optional but nice) keep an accessible focus style for keyboard users */
@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: 3px;
  }
}