*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;color:#172033;line-height:1.6}a{color:inherit} :focus-visible{outline:3px solid var(--accent,#d97706);outline-offset:3px}.wrap{max-width:1120px;margin:auto;padding:0 22px}.narrow{max-width:760px}header{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 2px 14px rgba(23,32,51,.06);position:relative;z-index:20}.nav{min-height:88px;display:flex;align-items:center;gap:18px}.brand{margin-right:auto;display:flex;align-items:center;gap:13px;text-decoration:none;font-weight:800;color:var(--primary,#1f4f78)}.brand img{width:auto;height:auto;max-width:92px;max-height:68px;object-fit:contain;display:block}nav{display:flex;gap:7px;align-items:center}nav a{text-decoration:none;padding:9px 11px;border-radius:8px;font-weight:700;transition:background .18s ease,color .18s ease,transform .18s ease}nav a:hover,nav a.active{background:color-mix(in srgb,var(--primary,#1f4f78) 12%,white);color:var(--primary,#1f4f78)}nav a:hover{transform:translateY(-1px)}nav a.nav-quote{background:var(--accent,#d97706);color:#fff;padding-inline:15px}nav a.nav-quote:hover,nav a.nav-quote.active{background:var(--accent,#d97706);color:#fff;filter:brightness(.94)}.phone{font-weight:800;color:var(--primary,#1f4f78);text-decoration:none;white-space:nowrap}.phone:not(.phone-static):hover{text-decoration:underline}.menu-toggle{display:none;align-items:center;gap:7px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#172033;padding:9px 12px;font:inherit;font-weight:700;cursor:pointer}.menu-icon{font-size:20px;line-height:1}.hero{background:#f2f5f8;padding:55px 0}.heroimg{width:100%;height:auto;max-height:560px;object-fit:cover;border-radius:14px;display:block}.btn{display:inline-block;background:var(--primary,#1f4f78);color:#fff;border:0;border-radius:7px;padding:12px 18px;text-decoration:none;font-weight:700;cursor:pointer}.danger{background:#b42318;color:#fff;border:0;border-radius:6px;padding:8px 10px}section{padding:60px 0}.alt{background:#f8fafc}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid article,details{border:1px solid #e5e7eb;border-radius:10px;padding:18px;background:#fff;margin-bottom:14px}.grid img{width:100%;height:200px;object-fit:cover;border-radius:8px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gallery figure{margin:0;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.gallery img{width:100%;height:230px;object-fit:cover}.gallery figcaption{padding:10px}.cities{display:flex;gap:10px;flex-wrap:wrap}.cities a{padding:8px 12px;border:1px solid color-mix(in srgb,var(--primary,#1f4f78) 30%,#d7dee8);border-radius:20px;text-decoration:none;background:#fff;color:var(--primary,#1f4f78);font-weight:700}.cities a:hover{background:color-mix(in srgb,var(--primary,#1f4f78) 10%,white)}footer{background:#172033;color:#fff;padding:35px 0}footer a{color:#fff}.login{max-width:500px;margin:70px auto;padding:25px}form{display:grid;gap:13px}label{display:grid;gap:5px;font-weight:600}input,textarea,select{font:inherit;border:1px solid #cbd5e1;border-radius:7px;padding:10px;width:100%}.success,.error{padding:13px;border-radius:7px;margin:12px 0}.success{background:#ecfdf3}.error{background:#fef3f2}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0}.stats div{border:1px solid #e5e7eb;border-radius:10px;padding:18px}.stats strong{display:block;font-size:30px}.stats span{color:#667085}.table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid #ddd;text-align:left;vertical-align:top}@media(max-width:850px){
.nav{min-height:64px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:9px 22px}
.brand{min-width:0;margin:0}.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand img{width:auto;height:auto;max-width:72px;max-height:52px;flex:0 0 auto}
.menu-toggle{display:inline-flex;justify-self:end}
.nav>nav{display:none;grid-column:1/-1;flex-direction:column;gap:0;width:100%;padding:6px 0 10px;border-top:1px solid #e5e7eb}
.nav>nav.is-open{display:flex}
.nav>nav a{display:block;padding:11px 10px;border-bottom:1px solid #f0f2f5;font-weight:700;border-radius:7px}
.nav>nav a:last-child{border-bottom:0}
.phone{grid-column:1/-1;justify-self:start;font-size:.95rem;text-decoration:none;padding-bottom:3px}
.grid,.gallery{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}
}@media(max-width:580px){.grid,.gallery,.stats{grid-template-columns:1fr}}
.secondary{background:#475467}
code{background:#f2f4f7;padding:2px 5px;border-radius:4px}

.devis-home{text-align:center;background:#fff}.devis-home p{max-width:700px;margin:0 auto 22px}

.service-card{position:relative}.service-link{display:block;color:inherit;text-decoration:none}.service-link:hover h2{text-decoration:underline}.service-more{display:inline-block;margin-top:8px;font-weight:700}.text-link{display:inline-block;margin-left:14px;font-weight:700}.service-hero p{font-size:1.08rem}
.service-title-link{color:inherit;text-decoration:none}.service-title-link:hover{text-decoration:underline}.service-btn{margin-top:8px}.service-card>a:first-child{display:block}

.footer-nav,.footer-legal{margin:12px 0 0}
.attachment-list{margin:.5rem 0 1rem}
.attachment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #ddd;border-radius:8px;margin-top:6px}
.attachment-item span{overflow-wrap:anywhere}
.attachment-remove{border:0;background:transparent;cursor:pointer;font-weight:700;text-decoration:underline}

/* V26 - harmonie visuelle */
h1,h2{color:var(--primary,#1f4f78);line-height:1.25}.hero{border-bottom:1px solid color-mix(in srgb,var(--primary,#1f4f78) 12%,#e5e7eb)}.grid article{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.grid article:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(23,32,51,.08);border-color:color-mix(in srgb,var(--primary,#1f4f78) 28%,#e5e7eb)}.service-more,.text-link{color:var(--primary,#1f4f78)}

/* V27 - thèmes prédéfinis et finitions validées */
header{border-bottom:3px solid var(--accent,#D98A4E)}
.brand img{max-width:84px;max-height:72px}
.phone{display:inline-block;background:var(--accent,#D98A4E);color:#fff;border-radius:999px;padding:9px 15px;font-weight:800;text-decoration:none}
.phone:not(.phone-static):hover{text-decoration:none;filter:brightness(.95)}
.service-card{overflow:hidden;border-top:5px solid var(--accent,#D98A4E)!important}
.service-card h2,.service-card h3{color:var(--primary,#29465B)}
@media(max-width:850px){.brand img{max-width:66px;max-height:58px}.phone{grid-column:1/-1;justify-self:center;width:auto;min-width:220px;max-width:72%;text-align:center;font-size:.95rem;padding:8px 18px;margin:4px auto 8px;color:#fff}}


/* V30 - navigation harmonisee des pages Services et Zones */
.city-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:22px}
.city-links .text-link{display:inline-block;margin-left:0;color:var(--primary,#1f4f78);text-decoration:none;border-bottom:1px solid var(--accent,#d97706);padding-bottom:1px}
.city-links .text-link:hover,.city-links .text-link:focus-visible{color:var(--primary,#1f4f78);text-decoration:none}
