/*!
Theme Name: M2tks
Template: Divi
Description: Un theme créé par Bleuebuzz
Version: 1.1
Author: Bleuebuzz
Author URI: https://www.bleuebuzz.fr
*/

/* GLOBAL
========================================== */
body{overflow-x:hidden;}


/* HEADER
========================================== */
.et_pb_row_0_tb_header{overflow: visible !important;backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);}
.site-logo {width: 200px; height: auto; fill: #fff; transition: color 0.3s ease;}
ul#menu-menu-principal{list-style-type:none;padding:0;display:flex;flex-direction:row;justify-content:center;gap:30px;}
ul#menu-menu-principal > li{position:relative;}
ul#menu-menu-principal > li.menu-item-has-children{padding-right:20px;}
ul#menu-menu-principal > li > a{position:relative;color:#fff;text-transform:uppercase;text-decoration:none;display:inline-block;font-size: 14px;font-weight: 400;}
ul#menu-menu-principal > li > a:hover{opacity: 1;}
ul#menu-menu-principal > li > a::after{content:'';position:absolute;bottom:-3px;left:0;width:100%;height:2px;background-color:#EA542D;transform:scaleX(0);transform-origin:center;transition:transform 0.3s ease-out;top: auto;}
ul#menu-menu-principal > li:hover > a::after,
ul#menu-menu-principal > li.current-menu-item > a::after{transform:scaleX(1);}
ul#menu-menu-principal > li.menu-item-has-children > a::before{font-family:'ETMODULES';content:'\33';position:absolute;right:-5px;top:34%;transform:translateY(-50%);font-size:18px;transition:transform 0.3s ease;}
ul#menu-menu-principal > li.menu-item-has-children:hover > a::before{transform:translateY(-50%) rotate(180deg);}
ul#menu-menu-principal ul.sub-menu{list-style-type:none;position:absolute;top:calc(100% + 40px);left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border-radius:20px;padding:20px 30px;min-width:290px;box-shadow:0 10px 30px rgba(0,0,0,0.15);opacity:0;visibility:hidden;transition:all 0.3s ease;z-index:1000;}
ul#menu-menu-principal ul.sub-menu::before{content:'';position:absolute;top:-37px;left:0;width:100%;height:37px;background:transparent;}
ul#menu-menu-principal li:hover > ul.sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0px);}
ul#menu-menu-principal ul.sub-menu li{margin: 3px 0;white-space: nowrap;text-align: left;padding: 0;line-height: 1.4em;}
ul#menu-menu-principal ul.sub-menu li a{color: #000 !important;text-transform: none;font-weight: 300;font-size: 14px;transition: color 0.2s ease;padding: 0;width: 100%;}
ul#menu-menu-principal ul.sub-menu li a:hover{color:#EA542D!important;opacity:1;background:transparent;}
ul#menu-menu-principal > li:last-child > a:after{transform:scaleX(0);transform-origin:center;}
ul#menu-menu-principal > li:last-child:hover > a::after{transform:scaleX(1);}


@media only screen and (max-width: 980px) {	
	.header-logo-link .site-logo{width: 170px;}
	.et_pb_section_0_tb_header .et_pb_row_0_tb_header.et_pb_row,
	.et_pb_section_0_tb_header.et_pb_sticky .et_pb_row_0_tb_header.et_pb_row{padding-left:0!important;padding-right:0!important;}
	.et_pb_section_0_tb_header {background:transparent!important;z-index:99999!important;}
	.et_pb_section_0_tb_header.et_pb_sticky,
	.et_pb_section_0_tb_header.et_pb_sticky--top{backdrop-filter: blur(10px);backdrop-filter: blur(10px) !important;-webkit-backdrop-filter: blur(10px) !important;}
	.et_pb_row_0_tb_header {display:flex!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important;position:relative!important;z-index:99999!important;filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
	.et_pb_column_0_tb_header {width:auto!important;margin-bottom:0!important;position:relative!important;z-index:100001!important;}
	.et_pb_column_1_tb_header {width:auto!important;margin-bottom:0!important;position:static!important;}
	.et_pb_column_2_tb_header {display:none!important;}
	.mobile_nav .mobile_menu_bar {background:#EA542D!important;width:45px!important;height:45px!important;border-radius:6px!important;display:flex!important;align-items:center;justify-content:center;position:relative;z-index:100002;}
	.mobile_nav .mobile_menu_bar::before {content: "" !important;display: block;width: 24px;height: 24px;background-color: #ffffff !important;     
    /* Intégration de ton SVG Groupe 1132 */
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26.899' height='26.899' viewBox='0 0 26.899 26.899'%3E%3Cg%3E%3Cpath d='M0,0V11.249' transform='translate(11.249 13.45) rotate(90)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(13.45 11.249) rotate(180)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(26.899 13.45) rotate(90)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(13.45 26.899) rotate(180)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26.899' height='26.899' viewBox='0 0 26.899 26.899'%3E%3Cg%3E%3Cpath d='M0,0V11.249' transform='translate(11.249 13.45) rotate(90)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(13.45 11.249) rotate(180)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(26.899 13.45) rotate(90)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3Cpath d='M0,0V11.249' transform='translate(13.45 26.899) rotate(180)' fill='none' stroke='%23ffffff' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");    
    -webkit-mask-size: contain;mask-size: contain;-webkit-mask-repeat: no-repeat;mask-repeat: no-repeat;-webkit-mask-position: center;mask-position: center;}
	.et_mobile_nav_menu .opened .mobile_menu_bar::before {transform: rotate(45deg);transition: transform 0.3s ease-in-out;}
	.et_pb_menu_0_tb_header .et_mobile_menu {position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;background: transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;padding:120px 30px 40px 30px!important;display:none!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;border-top:none!important;box-shadow:none!important;z-index:100000!important;opacity:0;visibility:hidden;transition:all 0.4s ease!important;}
	.et_pb_menu_0_tb_header .mobile_nav.opened .et_mobile_menu{display:flex!important;}
	.et_pb_menu_0_tb_header .mobile_nav.opened .et_mobile_menu {opacity:1!important;visibility:visible!important;max-width: 500px;margin: 0 auto;}
	.et_pb_menu_0_tb_header .et_mobile_menu li {text-align:left !important;width:100%!important;border-bottom:none!important;background:transparent!important;}
	.et_pb_menu_0_tb_header .et_mobile_menu li a {color:#fff!important;background:transparent!important;text-transform:uppercase!important;font-size:20px!important;font-weight:500!important;border-bottom:none!important;padding:5px 0!important;}
	.et_pb_menu_0_tb_header .et_mobile_menu li.menu-item-has-children > a::after {display:none!important;}
	.et_pb_menu_0_tb_header .et_mobile_menu li ul.sub-menu {background:transparent!important;padding:0 0 10px!important;display:block!important;visibility:visible!important;opacity:1!important;position:relative!important;box-shadow:none!important;}
	.et_pb_menu_0_tb_header .et_mobile_menu li ul.sub-menu li a {text-transform: none !important;font-size: 16px !important;font-weight: 300 !important;opacity: 1;padding: 5px 0 !important;}
	.mobile-cta-container {margin-top:40px!important;width:100%!important;list-style:none!important;}
	.et_pb_menu_0_tb_header .et_mobile_menu li.mobile-cta-container .mobile-fullscreen-cta a.et_pb_button{display:block!important;background:transparent!important;border:1px solid #EA542D!important;color:#fff!important;text-align:center!important;padding:14px 20px!important;border-radius:5px!important;text-transform:uppercase!important;font-size:15px!important;font-weight:500!important;max-width:100%;margin:0 auto!important;}
	#mobile-blur-overlay {display: none;position: fixed;top: 0; left: 0; right: 0; bottom: 0;background: rgba(0, 0, 0, 0.6);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);z-index: 99999;pointer-events: none;}
	#mobile-blur-overlay.active {display: block;}
}

@media screen and (max-width: 640px){
	.et_pb_menu_0_tb_header .mobile_nav.opened .et_mobile_menu{max-width: 350px;}
}

/* FOOTER
========================================== */
.footer-links a{margin-right:20px;}
.footer-logo-link .site-logo{width:100%;max-width:280px;}

/* HOMEPAGE
========================================== */
.mixed-font p > span{font-family: 'Spectral', Georgia, "Times New Roman", serif;font-style: italic;}
.mixed-font h2 > span{font-family: 'Spectral', Georgia, "Times New Roman", serif;font-style: italic;}
#page-container .et_pb_section .et_pb_module a.cta-text:after{font-size: 20px !important;}
.accordeon-unique a:hover{color:#ea542d!important;}

/* anim logo */
#anim-logo svg { height: auto; width: 100vw; }

body.home #anim-logo {
    animation: logo-shrink 1s 0.5s ease-in forwards;
}

body.home #section-header > div {
    opacity: 0;
    animation: header-reveal 0.8s 1.3s ease-in-out forwards;
}

@keyframes logo-shrink {
    0%   { transform: scale(1); opacity: 1; }
    70%  { opacity: 1; }
    100% { transform: scale(0.1); opacity: 0; }
}

@keyframes header-reveal {
    to { opacity: 1; }
}

/*swiper*/
.swiper-realisations { cursor: grab;}
.swiper-realisations:active {cursor: grabbing;}
.swiper-realisations .swiper-scrollbar{width: 30%;left: 35%;height: 6px;background: #A5A19D;}
.swiper-realisations .swiper-scrollbar .swiper-scrollbar-drag{background: #EA542D;}
.swiper-realisations .swiper-wrapper {transition-timing-function: linear !important;}

@media screen and (max-width: 1420px){
    .preset--module--divi-text--hwbb2wn1ga p{font-size: 20px; font-weight: 500;line-height:1.4em;}
}
@media screen and (max-width: 841px){
    .preset--module--divi-group--ivqmrgvu5c{Height:190px !important;}
}

/* EXPERTISE 
========================================== */
.section-phases-expertise .mixed-font h2 > span{font-size:80%;}
.section-phases-expertise .h3-sans-toggle:before {display:none!important; cursor: initial;}
.section-phases-expertise svg{max-width: 100%;}



/* ARTICLE
========================================== */
.single-post p:has(+ h2) {margin-bottom:30px;}
.blog-sidebar article > a{margin-bottom: 15px !important;}

.post-content-inner:has(+ .more-link){margin-bottom: 10px;}
.home .more-link,
.blog .more-link {position: relative;}
.home .more-link::after,
.blog .more-link::after {content: "" !important;display: inline-block;width: 12px;height: 12px;background-color: #ea542d !important; top: calc(50% - 6px);
    position: absolute;margin-left: 6px;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7.868' height='12.908' viewBox='0 0 7.868 12.908'%3E%3Cpath id='Tracé_20' data-name='Tracé 20' d='M72.682,1.061,67.642,6.1l5.04,5.04' transform='translate(74.096 12.555) rotate(180)' fill='none' stroke='%23ea542d' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7.868' height='12.908' viewBox='0 0 7.868 12.908'%3E%3Cpath id='Tracé_20' data-name='Tracé 20' d='M72.682,1.061,67.642,6.1l5.04,5.04' transform='translate(74.096 12.555) rotate(180)' fill='none' stroke='%23ea542d' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2'/%3E%3C/svg%3E");    
    -webkit-mask-size: contain;mask-size: contain;-webkit-mask-repeat: no-repeat;mask-repeat: no-repeat;-webkit-mask-position: center;mask-position: center;}

/* ANIM SVG
========================================== */
.s1-sq1 { stroke-dasharray: 661; stroke-dashoffset: 661; }
.s1-sq2 { opacity: 0; transform: translate(-89.289px, -91.408px); }
.phase-1.play-anim .s1-sq1 { animation: s1-draw 1.5s ease-in-out forwards; }
.phase-1.play-anim .s1-sq2 { animation: s1-move 1.5s ease-in-out 1.5s forwards; }

.s2-out { stroke-dasharray: 820; stroke-dashoffset: 820; }
.s2-in-t { stroke-dasharray: 285; stroke-dashoffset: 285; }
.s2-in-b { stroke-dasharray: 160; stroke-dashoffset: 160; }
.s2-tick { stroke-dasharray: 13; stroke-dashoffset: 13; }
.phase-2.play-anim .s2-out { animation: s2-draw 1s ease-out forwards; }
.phase-2.play-anim .s2-in-t, .phase-2.play-anim .s2-in-b { animation: s2-draw 0.8s ease-out 1s forwards; }
.phase-2.play-anim .s2-tick { animation: s2-draw 0.2s ease-out var(--delay) forwards; }

.s3-dome { stroke-dasharray: 660; stroke-dashoffset: 660; }
.s3-base { stroke-dasharray: 530; stroke-dashoffset: 530; }
.s3-gear { stroke-dasharray: 1100; stroke-dashoffset: 1100; }
.s3-needle { stroke-dasharray: 160; stroke-dashoffset: 160; }
.s3-ll, .s3-lr { stroke-dasharray: 60; stroke-dashoffset: 60; }
.phase-3.play-anim .s3-dome { animation: s3-draw 1.5s ease-in-out forwards; }
.phase-3.play-anim .s3-base { animation: s3-draw 1.2s ease-in-out 0.8s forwards; }
.phase-3.play-anim .s3-gear { animation: s3-draw 2s ease-in-out 1.5s forwards; }
.phase-3.play-anim .s3-needle { animation: s3-draw 0.8s ease-out 3s forwards; }
.phase-3.play-anim .s3-ll { animation: s3-draw 0.6s ease-out 3.4s forwards; }
.phase-3.play-anim .s3-lr { animation: s3-draw 0.6s ease-out 3.6s forwards; }

.s4-circ { stroke-dasharray: 425; stroke-dashoffset: 425; }
.s4-line { stroke-dasharray: 148; stroke-dashoffset: 148; }
.s4-head { opacity: 0; transform: translateX(-148px); }
.phase-4.play-anim .s4-circ { animation: s4-draw 1.2s ease-in-out forwards; }
.phase-4.play-anim .s4-line { animation: s4-draw 0.8s ease-out 1.2s forwards; }
.phase-4.play-anim .s4-head { animation: s4-slide 0.8s ease-out 1.2s forwards; }

.s5-doc { stroke-dasharray: 1000; stroke-dashoffset: 1000; }
.s5-fold { stroke-dasharray: 150; stroke-dashoffset: 150; }
.s5-line { stroke-dasharray: 100; stroke-dashoffset: 100; }
.s5-box { stroke-dasharray: 200; stroke-dashoffset: 200; }
.phase-5.play-anim .s5-doc { animation: s5-draw 1.2s ease-in-out forwards; }
.phase-5.play-anim .s5-fold { animation: s5-draw 0.5s ease-in-out 0.8s forwards; }
.phase-5.play-anim .s5-line { animation: s5-draw 0.8s ease-out 1.2s forwards; }
.phase-5.play-anim .s5-box { animation: s5-draw 0.8s ease-out 1.8s forwards; }

    

@keyframes s1-draw { to { stroke-dashoffset: 0; } }
@keyframes s1-move {
	0% { opacity: 1; transform: translate(-89.289px, -91.408px); }
	100% { opacity: 1; transform: translate(0, 0); }
}
@keyframes s2-draw { to { stroke-dashoffset: 0; } }
@keyframes s3-draw { to { stroke-dashoffset: 0; } }
@keyframes s4-draw { to { stroke-dashoffset: 0; } }
@keyframes s4-slide {
	0% { opacity: 0; transform: translateX(-148px); }
	10% { opacity: 1; }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes s5-draw { to { stroke-dashoffset: 0; } }

/* FLOATING SIDE NAV
========================================== */
#fsn-wrapper {
  position: absolute;
  left: 28px;
  z-index: 9999;
  /* La position top sera calculée par jQuery */
}

#fsn-wrapper.is-fixed {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
}

#fsn-wrapper.is-bottom {
  position: absolute;
  /* top calculé par jQuery pour la position finale */
  transform: none;
}

#floating-side-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: #ffffff;
  padding: 22px 18px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

#floating-side-nav a {
  display: block;
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 400;
  color: #222222;
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1.5px solid transparent;
  transition: border-color 0.2s ease, color 0.2s ease;
  white-space: nowrap;
  line-height: 1.6;
}

#floating-side-nav a:hover {
  border-bottom-color: #222222;
}

#floating-side-nav a.is-active {
  border-bottom-color: #222222;
  font-weight: 600;
}

@media (max-width: 980px) {
  #fsn-wrapper { display: none !important; }
}

/* FORMULAIRE
========================================== */

/* Style global du formulaire m2tks */
.m2tks-form { max-width: 760px; margin: 0 auto; }

.form-row { display: flex; gap: 16px; margin-bottom: 16px; }
.form-group { flex: 1; }

/* Champs */
.m2tks-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) {
    width: 100%;
    padding: 16px 18px;
    background: #fff;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-family: inherit;
    color: #222;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    transition: box-shadow 0.2s ease;
}

.m2tks-form .wpcf7-form-control::placeholder { color: #555; }

.m2tks-form .wpcf7-form-control:focus {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5);
}

/* ---- SELECT flèche ---- */
.m2tks-form .wpcf7-form-control-wrap[data-name="project-type"] {
    position: relative;
    display: block;
}
.m2tks-form .wpcf7-form-control-wrap[data-name="project-type"]::after {
    content: '❯';
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%) rotate(90deg);
    pointer-events: none;
    font-size: 14px;
    color: #555;
    line-height: 1;
}
.m2tks-form .wpcf7-select {
    cursor: pointer;
    color: #555;
    background-image: none;
    padding-right: 44px;
}


/* Textarea */
.m2tks-form .wpcf7-textarea {
    resize: none;
    height: 150px;
}

/* Checkbox — reset complet */
.m2tks-form .wpcf7-acceptance input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-top: 2px;
    border: 1.5px solid rgba(255, 255, 255, 0.7);
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 2px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
}

/* Checkmark via ::after */
.m2tks-form .wpcf7-acceptance input[type="checkbox"]::after {
    content: '';
    display: none;
    position: absolute;
    left: 4px;
    top: 1px;
    width: 5px;
    height: 9px;
    border: 2px solid #8B7D6B; /* couleur du fond taupe */
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}

.m2tks-form .wpcf7-acceptance input[type="checkbox"]:checked {
    background: rgba(255, 255, 255, 0.9);
    border-color: rgba(255, 255, 255, 0.9);
}

.m2tks-form .wpcf7-acceptance input[type="checkbox"]:checked::after {
    display: block;
}

/* Ligne checkbox — alignement */
.m2tks-form .form-row:has(.wpcf7-acceptance) {
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 0;
}

.m2tks-form .wpcf7-acceptance {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.m2tks-form .wpcf7-acceptance .wpcf7-list-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
}

.m2tks-form .wpcf7-acceptance .wpcf7-list-item label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
    cursor: pointer;
}

/* Bouton */
.m2tks-form .form-submit { text-align: center; margin-top: 28px; }

.m2tks-form .form-submit p {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid rgba(255, 255, 255, 1);
    cursor: pointer;
    transition: all 0.4s ease;
    margin: 0;
    padding: 0;
    border-radius: 5px;
}
.m2tks-form .form-submit p:hover {
    background: #ea542d;
    border:solid 1.5px #ea542d ;
    transition: all 0.4s ease;
}
.m2tks-form .form-submit p::after {
    content: '❯';
    font-size: 14px;
    color: #fff;
    padding: 0 20px 0 4px;
    line-height: 1;
    pointer-events: none;
}

/* L'input perd sa bordure, le <p> la porte */
.m2tks-form .wpcf7-submit {
    background: transparent;
    border: none;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 14px 14px 14px 28px;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
}
.m2tks-form .wpcf7-submit:focus { outline: none; }

.wpcf7 form.sent .wpcf7-response-output{border-color: #46b450;border-radius: 10px;padding: 10px 20px;color: #fff;}

/* Masquer le spinner par défaut */
.m2tks-form .wpcf7-spinner { display: none; margin: 0; }
.m2tks-form .form-submit p.submitting .wpcf7-spinner { display: inline-block; }

.wpcf7-not-valid-tip {color:#a00;}

/* Mobile */
@media (max-width: 600px) {
    .form-row {
        flex-direction: column;
        gap: 16px; /* même écart que entre les rows */
        margin-bottom: 16px;
    }
    
    .form-group {
        margin-bottom: 0; /* supprime le double espacement */
    }
    
    .m2tks-form .wpcf7-submit {
        padding: 14px 28px;
    }
}

/*Fix ancre position */

/*#cadrage,
#conception,
#budget,
#consultation,
#direction,
#reception,
#accompagnement,
#suivi,
#expertises {
    scroll-margin-top: 200px;
}*/