/* Base : évite tout débordement horizontal */
html,body{max-width:100%;overflow-x:hidden}
.two>*,#solutions>*,#marques>*,#faq>*,.hero>*,form>*,label{min-width:0}
input,select,textarea{width:100%;max-width:100%}
.nav{padding-left:max(5vw,env(safe-area-inset-left));padding-right:max(5vw,env(safe-area-inset-right))}

/* Grand écran (1440 px et plus) */
@media(min-width:1440px){.sec,.hero,.nav,footer{padding-left:max(5vw,calc((100vw - 1320px)/2));padding-right:max(5vw,calc((100vw - 1320px)/2))}}

/* Tablette large / petit laptop : le menu passe en mode burger dès 1024 px */
@media(max-width:1024px){
.burger{display:block}
.nav nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.5rem 5vw 1.5rem;background:#fff;border-bottom:1px solid var(--line);max-height:calc(100vh - 70px);overflow-y:auto}
.nav nav.open{display:flex}
.nav nav a{padding:.85rem 0;font-size:1rem;border-bottom:1px solid var(--line)}
.nav nav a.btn.small{margin-top:1rem;text-align:center;border-bottom:2px solid var(--navy);padding:.85rem 1.2rem}
.hero{gap:2vw}.brand-row{grid-template-columns:140px 1fr;gap:1.4rem}.brand-row img{width:140px;height:100px}
}

/* Tablette (768 px) et mobile */
@media(max-width:860px){
.hero,.two,#solutions,#marques,#faq{grid-template-columns:1fr}
.hero{padding:7vh 5vw 14vh;min-height:0;gap:2.5rem}.ring{max-width:340px}
#solutions>h2,#marques>h2,#faq>h2{position:static}
.sec{padding:9vh 5vw}.two{gap:2.5rem}
.brand-row{grid-template-columns:1fr;gap:1rem;padding-left:1.1rem}.brand-row img{width:160px;height:108px}
.poles{gap:1.8rem}
}

/* Mobile (≤ 560 px) */
@media(max-width:560px){
body{font-size:1rem}
.brand img{height:44px}
.hero h1{font-size:clamp(1.9rem,9vw,2.4rem);max-width:none}.hero .sub{font-size:1.1rem}
.cta{flex-direction:column}.cta .btn{text-align:center;width:100%}
.ring{max-width:280px}.ring g text{font-size:15px}
.sec{padding:8vh 5vw}h2{font-size:1.6rem;max-width:none}
.services{grid-template-columns:1fr}.poles{grid-template-columns:1fr 1fr}
.choices button{padding:.7rem 1rem}
.sign .cta .btn{width:100%}#pad{height:160px}
.doc{padding:1rem}th,td{padding:.5rem .4rem;font-size:.9rem}
.ast{right:8px;left:8px;width:auto;bottom:66px}.ast .log{height:min(320px,48vh)}.ast-btn{right:8px;bottom:max(8px,env(safe-area-inset-bottom))}
footer{grid-template-columns:1fr 1fr;gap:1.5rem}footer>div:first-child{grid-column:1/-1}
}

/* Très petit écran (320 px) */
@media(max-width:360px){
.poles{grid-template-columns:1fr}.brand img{height:40px}.hero h1{font-size:1.8rem}footer{grid-template-columns:1fr}.ast-btn{font-size:.85rem;padding:.65rem 1rem}
}
@media(max-width:860px){#a-propos{grid-template-columns:1fr;gap:2rem}}
@media(max-width:560px){.brand img{height:44px}}
@media(max-width:560px){.brand img{height:50px}}
@media(max-width:560px){.dock{right:8px;bottom:max(8px,env(safe-area-inset-bottom))}.wa-btn span{display:none}.wa-btn{padding:.8rem}.ast{bottom:72px}.ast-btn{font-size:.88rem;padding:.75rem 1rem}}
@media(max-width:860px){.side{position:static}.steps{grid-template-columns:1fr;gap:0}.steps li{padding:1rem 0 1rem 3.4rem;border-top:1px solid var(--line)}.steps li:before{top:.9rem}.steps li:after{display:none}.brand-row{border-radius:0 var(--r) var(--r) 0}}
@media(min-width:1200px){.services{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){form>label.h{grid-column:1/-1}}
@media(max-width:560px){.chips{margin-top:1.6rem}.pole{padding:1.2rem}.services li{padding:1.2rem}}
@media(max-width:640px){.doc{padding:1.3rem 1.1rem}.dh{flex-direction:column-reverse;gap:1rem}.dt{text-align:left}.dg{grid-template-columns:1fr}.dm{min-width:0;width:100%}}
@media(max-width:560px){.poles{grid-template-columns:minmax(0,1fr);gap:0;margin-left:7px}
.pole{padding:0 0 1.6rem 2rem;border-left:2px solid var(--line)}.pole:last-child{border-left-color:transparent}
.pole::before{left:-9px;top:.15rem}.pole::after{display:none}}

@media(max-width:1024px){.dd{border-bottom:1px solid var(--line)}.dd-btn{width:100%;justify-content:space-between;padding:.85rem 0;font-size:1rem}.dd-menu{position:static;box-shadow:none;border:0;padding:0 0 .6rem;min-width:0;background:transparent}}
@media(max-width:860px){.bf,.bf:nth-child(even){grid-template-columns:1fr;gap:1.4rem}.bf:nth-child(even) .bf-v{order:0}.brands{gap:3rem}.xg{grid-template-columns:1fr}.xg-l{grid-template-columns:1fr}}
@media(max-width:560px){.bf-logo{width:104px;height:70px}}
/* Boutons flottants : deux petits boutons horizontaux */
.dock{gap:.4rem;right:14px;bottom:14px}
.dock .wa-btn,.dock .ast-btn{min-height:38px;padding:.35rem .85rem;font-size:.8rem;gap:.35rem;box-shadow:0 2px 10px rgba(7,27,61,.22);white-space:nowrap}
.dock .wa-btn svg{width:17px;height:17px}.ast{bottom:60px}
@media(max-width:560px){.dock{right:8px;bottom:max(8px,env(safe-area-inset-bottom))}.dock .wa-btn{width:38px;padding:0;justify-content:center}.dock .wa-btn span{display:none}.ast{bottom:56px}.g2{grid-template-columns:1fr}.nav-b .btn{flex:1;text-align:center}}
@media(max-width:1024px){.kbtn{margin:.8rem 0 0;justify-content:center;padding:.7rem}.kbtn kbd{display:none}}
@media(hover:none){.kbtn kbd{display:none}}
/* Marques : sur tablette et mobile, le logo passe sous l'illustration au lieu de la recouvrir */
@media(max-width:860px){
.bf-v{aspect-ratio:auto;display:flex;flex-direction:column}
.bf-art{height:auto;aspect-ratio:3/2}
.bf-logo{position:static;width:100%;height:68px;border-radius:0;box-shadow:none;display:flex;align-items:center;justify-content:flex-start;padding:.5rem 1rem}
.bf-logo img{height:100%;width:auto;max-width:60%}
}
@media(max-width:860px){.bf:first-child .bf-logo{background:#000}.bf:first-child .bf-logo img{max-width:none}}
/* Boutons flottants : deux boutons verticaux, l'un au-dessus de l'autre */
.dock{flex-direction:column;align-items:stretch;gap:.45rem;right:14px;bottom:14px}
.dock .wa-btn,.dock .ast-btn{width:152px;justify-content:center}
.ast{bottom:104px}
@media(max-width:560px){.dock{right:8px;bottom:max(8px,env(safe-area-inset-bottom));align-items:flex-end}.dock .wa-btn{width:40px;height:40px;padding:0}.dock .ast-btn{width:auto}.ast{bottom:100px}}
@media(max-width:860px){.bro-b{grid-template-columns:1fr}.bro-h{flex-direction:column;align-items:flex-start}.tools a{grid-template-columns:2.4rem 1fr auto}}
