/* Correctifs responsives ciblés — compatibles avec le design et le menu existants */
html,body{max-width:100%;overflow-x:hidden}img,video,iframe,svg{max-width:100%;height:auto}input,select,textarea,button{max-width:100%}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}.grid>*{min-width:0}

@media(min-width:1041px){body:not(.legal-body) .menu-toggle{display:none!important}body:not(.legal-body) .main-nav{display:flex!important;position:static!important;max-height:none!important;overflow:visible!important}}

@media(max-width:1040px){html body:not(.legal-body) .site-header{inset:0 0 auto!important;position:absolute!important;z-index:1000!important}html body:not(.legal-body) .nav-wrap{grid-template-columns:88px minmax(0,1fr) auto!important;min-height:82px!important;padding:8px 16px!important;position:relative!important}html body:not(.legal-body) .brand{height:64px!important;min-width:76px!important;width:76px!important}html body:not(.legal-body) .brand img{height:62px!important;width:72px!important}body:not(.legal-body) .menu-toggle{align-items:center!important;display:inline-flex!important;grid-column:3!important;grid-row:1!important;justify-content:center!important;justify-self:end!important;position:relative!important;z-index:1002!important}html body:not(.legal-body) .main-nav{align-items:stretch!important;background:rgba(5,6,9,.97)!important;backdrop-filter:blur(24px)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:0 0 18px 18px!important;box-shadow:0 25px 60px rgba(0,0,0,.5)!important;display:none!important;flex-direction:column!important;gap:4px!important;left:0!important;margin:0!important;max-height:calc(100svh - 82px)!important;overflow-y:auto!important;padding:12px!important;position:absolute!important;right:0!important;top:100%!important;width:100%!important;z-index:1001!important}html body:not(.legal-body) .main-nav.is-open{display:flex!important}html body:not(.legal-body) .main-nav a{border-radius:10px!important;display:flex!important;font-size:.78rem!important;justify-content:center!important;line-height:1.2!important;padding:12px 14px!important;width:100%!important}html body:not(.legal-body) .main-nav a:hover,html body:not(.legal-body) .main-nav a.is-active{background:rgba(255,49,61,.11)!important;color:#fff!important}.hero{padding-top:82px}.about-layout,.agenda-card,.contact-layout{grid-template-columns:1fr!important}.about-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.process-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}.press-grid{grid-template-columns:1fr!important}#galerie .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#equipe .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.team-modal-layout{grid-template-columns:1fr!important}}

@media(max-width:680px){.container{width:calc(100% - 24px)!important}.hero{min-height:650px!important;padding-inline:12px!important}.hero-inner,.hero-content{text-align:center!important}.hero-content h1{font-size:clamp(2rem,11vw,3.2rem)!important;line-height:1.03!important}.hero-logo{max-width:180px!important}.hero-tags,.hero-actions{justify-content:center!important}.hero-actions{align-items:stretch!important;flex-direction:column!important}.hero-actions .button{width:100%!important}.section{padding-block:52px!important}.section-head h2{font-size:clamp(1.7rem,9vw,2.4rem)!important}.about-stats-grid,.process-list,#galerie .gallery-grid,#equipe .team-grid{grid-template-columns:1fr!important}.photo-slide{flex:0 0 88%!important}.photo-carousel,.reviews-carousel{padding-inline:0!important}.review-card{min-width:min(88vw,420px)!important}.agenda-frame{padding:10px!important}.agenda-viewport{overflow-x:auto!important}.agenda-list{min-width:540px}.contact-panel{padding:20px 15px!important}.contact-panel form,.contact-form{grid-template-columns:1fr!important}.contact-panel form>*,.contact-form>*{grid-column:1!important}.team-modal{max-height:92svh!important;overflow:auto!important;width:calc(100% - 18px)!important}.team-modal-copy{padding:20px 16px!important}.footer-grid{grid-template-columns:1fr!important;text-align:center!important}.footer-socials,.footer-links{justify-content:center!important}}

@media(max-width:390px){.container{width:calc(100% - 16px)!important}html body:not(.legal-body) .nav-wrap{grid-template-columns:72px minmax(0,1fr) auto!important;padding-inline:10px!important}.hero-content h1{font-size:1.9rem!important}.section{padding-block:44px!important}.team-photo{height:135px!important;width:135px!important}}

@media(max-height:520px) and (orientation:landscape){html body:not(.legal-body) .main-nav{max-height:calc(100vh - 72px)!important}.hero{min-height:560px!important}.team-modal{max-height:94vh!important;overflow:auto!important}}

.legal-body .legal-shell,.legal-body .legal-container{max-width:100%}@media(max-width:700px){.legal-body .container{width:calc(100% - 22px)!important}.legal-body .legal-card,.legal-body main{padding-left:16px!important;padding-right:16px!important}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* V275 — réparation mobile section par section */
@media(max-width:680px){
  body:not(.legal-body) main,body:not(.legal-body) .section,body:not(.legal-body) .container{max-width:100%!important;min-width:0!important}
  body:not(.legal-body) .section{overflow:hidden!important}
  body:not(.legal-body) .section-head,body:not(.legal-body) .section-head.align-left{margin-inline:auto!important;max-width:100%!important;text-align:center!important}
  body:not(.legal-body) .section-head .lead{font-size:.88rem!important;line-height:1.65!important}
  body:not(.legal-body) .about-stats-grid,body:not(.legal-body) .process-list,body:not(.legal-body) #galerie .gallery-grid,body:not(.legal-body) .about-layout,body:not(.legal-body) #equipe .team-grid,body:not(.legal-body) .press-grid,body:not(.legal-body) #agenda .agenda-card,body:not(.legal-body) #contact .contact-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
  body:not(.legal-body) .about-stat,body:not(.legal-body) .process-step,body:not(.legal-body) .gallery-card,body:not(.legal-body) .about-story,body:not(.legal-body) .about-facts,body:not(.legal-body) .team-card,body:not(.legal-body) .press-card,body:not(.legal-body) .agenda-info-panel,body:not(.legal-body) .agenda-frame,body:not(.legal-body) .contact-panel,body:not(.legal-body) .quote-form{box-sizing:border-box!important;margin-inline:0!important;max-width:100%!important;min-width:0!important;width:100%!important}
  body:not(.legal-body) .about-stat,body:not(.legal-body) .process-step,body:not(.legal-body) .gallery-card,body:not(.legal-body) .press-card{min-height:0!important}
  body:not(.legal-body) #galerie .photo-gallery{margin-inline:0!important;max-width:100%!important;padding-inline:0!important;width:100%!important}
  body:not(.legal-body) #galerie .photo-carousel,body:not(.legal-body) #avis .reviews-carousel{box-sizing:border-box!important;margin-inline:0!important;max-width:100%!important;overflow:hidden!important;padding-inline:0!important;width:100%!important}
  body:not(.legal-body) #galerie .photo-track,body:not(.legal-body) #avis .review-track{max-width:100%!important;min-width:0!important}
  body:not(.legal-body) #galerie .photo-slide{flex:0 0 100%!important;margin:0!important;max-width:100%!important;min-width:100%!important;width:100%!important}
  body:not(.legal-body) #galerie .photo-slide img,body:not(.legal-body) #galerie .photo-slide video{height:auto!important;max-height:360px!important;object-fit:cover!important;width:100%!important}
  body:not(.legal-body) #avis .review-card{box-sizing:border-box!important;flex:0 0 100%!important;margin:0!important;max-width:100%!important;min-width:100%!important;width:100%!important}
  body:not(.legal-body) #equipe .team-card,body:not(.legal-body) #equipe .team-card:nth-child(even){min-height:0!important;padding:22px 16px!important}
  body:not(.legal-body) #equipe .team-photo,body:not(.legal-body) #equipe .team-card:nth-child(even) .team-photo{height:150px!important;min-height:150px!important;width:150px!important}
  body:not(.legal-body) #agenda .agenda-card{gap:16px!important;padding:0!important}
  body:not(.legal-body) #agenda .agenda-info-panel,body:not(.legal-body) #agenda .agenda-frame{border-radius:18px!important;padding:17px!important}
  body:not(.legal-body) #agenda .agenda-types{display:flex!important;flex-wrap:wrap!important;gap:6px!important}
  body:not(.legal-body) #agenda .agenda-viewport{max-height:480px!important;overflow-x:hidden!important;overflow-y:auto!important;width:100%!important}
  body:not(.legal-body) #agenda .agenda-list{box-sizing:border-box!important;max-width:100%!important;min-width:0!important;padding:7px!important;width:100%!important}
  body:not(.legal-body) #agenda .agenda-item{gap:9px!important;grid-template-columns:minmax(0,1fr)!important;padding:11px!important;width:100%!important}
  body:not(.legal-body) #agenda .agenda-date{min-height:0!important;padding:9px!important;width:100%!important}
  body:not(.legal-body) #agenda .agenda-full-date{display:block!important;font-size:.75rem!important;text-align:center!important;white-space:normal!important}
  body:not(.legal-body) #agenda .agenda-content{text-align:center!important}
  body:not(.legal-body) #agenda .agenda-badges{justify-content:center!important}
  body:not(.legal-body) #contact .contact-panel,body:not(.legal-body) #contact .quote-form{border-radius:18px!important;padding:18px 14px!important}
  body:not(.legal-body) #contact .region-card{align-items:center!important;grid-template-columns:72px minmax(0,1fr)!important;padding:12px!important}
  body:not(.legal-body) #contact .region-map{height:80px!important;width:68px!important}
  body:not(.legal-body) #contact .quote-form-head{display:block!important;padding:0 0 18px!important}
  body:not(.legal-body) #contact .quote-form-reassurance{align-items:stretch!important;display:grid!important;grid-template-columns:1fr!important}
  body:not(.legal-body) #contact .form-grid{display:grid!important;gap:14px!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}
  body:not(.legal-body) #contact .form-grid>*{grid-column:1!important;max-width:100%!important;min-width:0!important;width:100%!important}
  body:not(.legal-body) #contact input,body:not(.legal-body) #contact select,body:not(.legal-body) #contact textarea{box-sizing:border-box!important;font-size:16px!important;width:100%!important}
  body:not(.legal-body) .footer-top,body:not(.legal-body) .footer-grid,body:not(.legal-body) .footer-bottom{align-items:center!important;display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;max-width:100%!important;text-align:center!important}
  body:not(.legal-body) .side-social{display:none!important}
  body:not(.legal-body) .back-to-top{bottom:12px!important;right:12px!important}
}

@media(max-width:360px){body:not(.legal-body) .container{width:calc(100% - 12px)!important}body:not(.legal-body) #contact .region-card{grid-template-columns:1fr!important;text-align:center!important}body:not(.legal-body) #contact .region-map{margin-inline:auto!important}body:not(.legal-body) .agenda-badge{font-size:.58rem!important}}

/* V276 — Notre méthode, correction mobile définitive */
@media(max-width:900px){
  html body:not(.legal-body) #deroulement .process-step:nth-child(1),html body:not(.legal-body) #deroulement .process-step:nth-child(2),html body:not(.legal-body) #deroulement .process-step:nth-child(3),html body:not(.legal-body) #deroulement .process-step:nth-child(4),html body:not(.legal-body) #deroulement .process-step:nth-child(5),html body:not(.legal-body) #deroulement .process-step:nth-child(6),html body:not(.legal-body) #deroulement .process-step:nth-child(7){grid-column:auto!important}
}
@media(max-width:680px){
  html body:not(.legal-body) #deroulement{padding-block:48px!important}
  html body:not(.legal-body) #deroulement .process-heading{margin-bottom:20px!important}
  html body:not(.legal-body) #deroulement .process-heading .section-head h2{font-size:clamp(1.75rem,9vw,2.3rem)!important;line-height:1.06!important}
  html body:not(.legal-body) #deroulement .process-heading .lead{font-size:.8rem!important;line-height:1.55!important;padding-inline:5px!important}
  html body:not(.legal-body) #deroulement .process-list{display:grid!important;gap:10px!important;grid-template-columns:minmax(0,1fr)!important;margin:0!important;padding:0!important;width:100%!important}
  html body:not(.legal-body) #deroulement .process-step,html body:not(.legal-body) #deroulement .process-step:nth-child(even),html body:not(.legal-body) #deroulement .process-step:last-child,html body:not(.legal-body) #deroulement .process-step:nth-child(5),html body:not(.legal-body) #deroulement .process-step:nth-child(6),html body:not(.legal-body) #deroulement .process-step:nth-child(7){display:grid!important;grid-column:1!important;grid-template-columns:96px minmax(0,1fr)!important;min-height:138px!important;overflow:hidden!important;width:100%!important}
  html body:not(.legal-body) #deroulement .process-step>img{grid-column:1!important;height:100%!important;min-height:138px!important;object-fit:cover!important;width:96px!important}
  html body:not(.legal-body) #deroulement .process-step-content{align-content:center!important;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015))!important;display:grid!important;grid-column:2!important;padding:14px 13px!important;text-align:left!important}
  html body:not(.legal-body) #deroulement .process-number{align-items:center!important;border-radius:8px!important;display:inline-flex!important;font-size:.65rem!important;height:25px!important;justify-content:center!important;left:auto!important;margin:0 0 8px!important;position:static!important;top:auto!important;width:25px!important}
  html body:not(.legal-body) #deroulement .process-step h3{font-size:.86rem!important;line-height:1.2!important;margin:0 0 6px!important}
  html body:not(.legal-body) #deroulement .process-step p{display:block!important;font-size:.65rem!important;line-height:1.45!important;margin:0!important}
  html body:not(.legal-body) #deroulement .process-step:hover{transform:none!important}
}
@media(max-width:370px){html body:not(.legal-body) #deroulement .process-step,html body:not(.legal-body) #deroulement .process-step:nth-child(even),html body:not(.legal-body) #deroulement .process-step:last-child{grid-template-columns:82px minmax(0,1fr)!important}html body:not(.legal-body) #deroulement .process-step>img{width:82px!important}html body:not(.legal-body) #deroulement .process-step-content{padding:12px 10px!important}}
.antispam-confirm{align-items:center!important;background:rgba(73,211,148,.055)!important;border:1px solid rgba(73,211,148,.18)!important;border-radius:15px!important;display:flex!important;gap:12px!important;padding:14px!important;transition:border-color .25s ease,background .25s ease!important}.antispam-confirm span,.antispam-confirm strong,.antispam-confirm small{display:block!important}.antispam-confirm strong{color:#e9fff4!important;font-size:.78rem!important}.antispam-confirm small{color:rgba(255,255,255,.5)!important;font-size:.64rem!important;margin-top:3px!important}.antispam-shield{align-items:center!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:50%!important;color:#aeb5c0!important;display:flex!important;flex:0 0 34px!important;font-size:.9rem!important;height:34px!important;justify-content:center!important}.antispam-confirm[data-state=ready]{background:rgba(73,211,148,.09)!important;border-color:rgba(73,211,148,.38)!important}.antispam-confirm[data-state=ready] .antispam-shield{background:#35bd7b!important;border-color:#69e5aa!important;color:#fff!important;box-shadow:0 0 20px rgba(53,189,123,.3)!important}.antispam-confirm[data-state=error]{background:rgba(255,53,67,.08)!important;border-color:rgba(255,53,67,.4)!important}.antispam-confirm[data-state=error] .antispam-shield{color:#ff6873!important}
html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-shield{align-items:center!important;box-sizing:border-box!important;display:flex!important;flex-basis:34px!important;flex-grow:0!important;flex-shrink:0!important;height:34px!important;justify-content:center!important;line-height:1!important;margin:0!important;max-height:34px!important;max-width:34px!important;min-height:34px!important;min-width:34px!important;overflow:hidden!important;padding:0!important;width:34px!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>span:not(.antispam-shield){flex:1 1 auto!important;margin:0!important;min-width:0!important;width:auto!important}
html body:not(.legal-body) #contact .quote-form .antispam-answer{display:block!important;flex:0 0 112px!important;margin:0!important;max-width:112px!important;width:112px!important}html body:not(.legal-body) #contact .quote-form .antispam-answer input{height:42px!important;margin:0!important;min-height:42px!important;padding:8px 12px!important;text-align:center!important;width:100%!important}html body:not(.legal-body) #contact .quote-form .antispam-refresh{align-items:center!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:12px!important;color:#fff!important;display:flex!important;flex:0 0 42px!important;font-size:1.25rem!important;height:42px!important;justify-content:center!important;margin:0!important;max-width:42px!important;min-width:42px!important;padding:0!important;width:42px!important}html body:not(.legal-body) #contact .quote-form .antispam-refresh:hover{background:rgba(255,53,67,.18)!important;border-color:rgba(255,53,67,.45)!important;transform:rotate(90deg)!important}@media(max-width:620px){html body:not(.legal-body) #contact .quote-form .antispam-confirm{flex-wrap:wrap!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-copy{flex:1 1 calc(100% - 50px)!important}html body:not(.legal-body) #contact .quote-form .antispam-answer{flex:1 1 calc(100% - 54px)!important;max-width:none!important;width:auto!important}}
html body:not(.legal-body) #contact .quote-form .antispam-confirm{background:radial-gradient(circle at 8% 20%,rgba(255,48,59,.18),transparent 34%),linear-gradient(135deg,rgba(24,25,32,.82),rgba(8,9,14,.68))!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:18px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 14px 35px rgba(0,0,0,.2)!important;gap:14px!important;padding:15px 16px!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-shield{background:linear-gradient(145deg,#ff4650,#c9142d)!important;border:1px solid rgba(255,255,255,.3)!important;border-radius:12px!important;box-shadow:0 8px 22px rgba(255,42,54,.28)!important;color:#fff!important;font-size:1rem!important;height:44px!important;max-height:44px!important;max-width:44px!important;min-height:44px!important;min-width:44px!important;width:44px!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-copy strong{color:#fff!important;font-size:.82rem!important;font-weight:900!important;letter-spacing:.02em!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-copy small{color:#ffb5ba!important;font-size:.78rem!important;font-weight:800!important;letter-spacing:.01em!important;margin-top:5px!important}html body:not(.legal-body) #contact .quote-form .antispam-answer input{background:rgba(0,0,0,.38)!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:12px!important;color:#fff!important;font-size:.9rem!important;font-weight:900!important;letter-spacing:.05em!important;outline:none!important}html body:not(.legal-body) #contact .quote-form .antispam-answer input:focus{border-color:#ff4650!important;box-shadow:0 0 0 3px rgba(255,70,80,.15)!important}html body:not(.legal-body) #contact .quote-form .antispam-answer input::placeholder{color:rgba(255,255,255,.42)!important;font-weight:700!important;letter-spacing:0!important}html body:not(.legal-body) #contact .quote-form .antispam-refresh{background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.045))!important;border-color:rgba(255,255,255,.17)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm[data-state=ready]{border-color:rgba(255,70,80,.32)!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm[data-state=loading]>.antispam-shield{animation:hfAntispamPulse 1.2s ease-in-out infinite!important}@keyframes hfAntispamPulse{0%,100%{opacity:.62;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}@media(max-width:620px){html body:not(.legal-body) #contact .quote-form .antispam-confirm{padding:14px!important}html body:not(.legal-body) #contact .quote-form .antispam-confirm>.antispam-copy{flex-basis:calc(100% - 62px)!important}html body:not(.legal-body) #contact .quote-form .antispam-answer{flex-basis:calc(100% - 56px)!important}}
