:root{--ink:#0a2540;--blue:#0f4c81;--cyan:#1aa6c9;--amber:#f0a500;--paper:#f5f8fb;--line:#cfdbe6;--txt:#1b2d3f;--mut:#5b6e80}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:16px/1.65 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--txt);background:#fff}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.wrap{width:min(1120px,92%);margin:auto}
header{position:sticky;top:0;height: 100px;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.bar img{height:48px;width:auto;display:block}
nav ul{display:flex;gap:6px;list-style:none;padding:0;margin-top: 15px;}
nav a{display:block;padding:8px 14px;border-radius:4px;font-weight:600;font-size:15px}
nav a:hover,nav a.cur{background:var(--paper);color:var(--blue)}
.doc{background:var(--ink);color:#fff;padding:9px 16px;border-radius:4px;font-weight:600;font-size:14px}
.doc:hover{background:var(--blue)}
#burger{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:8px 12px;font-size:18px;cursor:pointer}
/* Hero */
.hero{position:relative;color:#fff;background:var(--ink);min-height:min(78vh,640px);display:flex;align-items:center;overflow:hidden}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s}
.slide.on{opacity:1}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(10,37,64,.94) 0%,rgba(10,37,64,.78) 55%,rgba(10,37,64,.45) 100%),
 linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px) 0 0/48px 48px}
.hero .wrap{position:relative;z-index:2;padding:72px 0}
.hero h1{font-size:clamp(30px,5vw,54px);line-height:1.12;max-width:17em;letter-spacing:-.02em;font-weight:700}
.hero p{max-width:34em;margin:18px 0 30px;color:#cfe0ef;font-size:18px}
.btn{display:inline-block;padding:13px 24px;border-radius:4px;font-weight:700;border:2px solid transparent;cursor:pointer;font:inherit;font-weight:700}
.btn.pri{background:var(--amber);color:#1b1400}.btn.pri:hover{background:#ffbb1f}
.btn.sec{border-color:rgba(255,255,255,.55);color:#fff;margin-left:8px}.btn.sec:hover{background:rgba(255,255,255,.12)}
/* Cartouche (title block) */
.cartouche{position:relative;z-index:3;margin-top:-56px}
.cartouche dl{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--amber)}
.cartouche div{padding:22px 26px;border-right:2px solid var(--ink)}
.cartouche div:last-child{border:0}
.cartouche dt{color:var(--mut);font-size:14px}
.cartouche dd{font-size:clamp(34px,5vw,52px);font-weight:700;color:var(--blue);line-height:1.1;font-variant-numeric:tabular-nums}
section{padding:84px 0}
h2{font-size:clamp(26px,3.6vw,38px);line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-bottom:22px}
.about{display:grid;grid-template-columns:1fr;gap:20px}
.about .txt{color:black}
.about .txt p{margin-bottom:1em}
/* Services */
.svc{background:var(--paper);border-block:1px solid var(--line)}
.svc ul{list-style:none;padding:0;border-top:2px solid var(--ink)}
.svc li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr);gap:24px;padding:20px 8px;border-bottom:1px solid var(--line);align-items:baseline}
.svc li:hover{background:#fff}
.svc b{font-size:18px;color:var(--ink)}
.svc span{color:var(--mut)}
/* Appel */
.cta{background:var(--ink);color:#fff;text-align:center}
.cta h2{color:#fff;max-width:22em;margin-inline:auto}
.cta p{max-width:46em;margin:0 auto 28px;color:#cfe0ef}
/* Contact */
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:56px}
.contact address{font-style:normal;color:var(--txt)}
.contact address p{margin-bottom:14px}
.contact a:hover{color:var(--blue)}
form{display:grid;gap:14px}
label{font-weight:600;font-size:14px;color:var(--ink)}
input,textarea{width:100%;padding:12px 14px;border:1px solid #9fb3c6;border-radius:4px;font:inherit;background:#fff;margin-top:4px}
textarea{min-height:130px;resize:vertical}
.btn.sub{background:var(--blue);color:#fff;justify-self:start}.btn.sub:hover{background:var(--ink)}
.msg{padding:12px 16px;border-radius:4px;margin-bottom:16px;font-weight:600}
.msg.ok{background:#e3f6ec;color:#0c5a31}.msg.err{background:#fde8e6;color:#8a1c12}
footer{background:#07182b;color:#9db3c8;padding:40px 0;font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}
footer ul{display:flex;gap:18px;list-style:none;padding:0;flex-wrap:wrap}
footer a:hover{color:#fff}
@media(max-width:820px){
 #burger{display:block}
 nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:8px 4%}
 nav.open{display:block}nav ul{flex-direction:column}
 .doc{display:none}
 .cartouche dl{grid-template-columns:1fr}.cartouche div{border-right:0;border-bottom:2px solid var(--ink)}
 .svc li{grid-template-columns:1fr;gap:4px}
 .contact{grid-template-columns:1fr;gap:32px}
 .btn.sec{margin:10px 0 0}
 section{padding:60px 0}
}
@media(prefers-reduced-motion:reduce){.slide{transition:none}html{scroll-behavior:auto}}
/* Pages internes */
.pagehead{background:var(--ink);color:#fff;padding:56px 0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:48px 48px}
.pagehead h1{font-size:clamp(28px,4.5vw,44px);line-height:1.15;letter-spacing:-.02em}
.pagehead p{color:#cfe0ef;margin-top:8px}
.content{padding:64px 0}
.content .txt{max-width:70ch}.content .txt p{margin-bottom:1em}
/* Fil d'Ariane + bandeau haut de page avec image */
.pagehead.tall{padding-bottom:104px;background-size:cover;background-position:center}
.crumb{display:flex;gap:10px;list-style:none;padding:0;margin-top:14px;font-size:15px;color:#cfe0ef}
.crumb li+li::before{content:"/";margin-right:10px;opacity:.6}
.crumb a:hover{color:#fff;text-decoration:underline}
.about .txt ul{margin:0 0 1em 1.2em}
/* Liste des services (page service.php) */
.slist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:2px solid var(--ink)}
.slist li{padding:20px 8px 20px 20px;border-bottom:1px solid var(--line);border-left:4px solid var(--amber);margin-top:-1px;font-size:18px;font-weight:600;color:var(--ink)}
.slist li:hover{background:var(--paper)}
@media(max-width:820px){.slist{grid-template-columns:1fr}}
/* Liste des projets + pagination (projets.php) */
.slist li.p{padding:0}
.slist li.p a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 8px 20px 20px}
.slist li.p .more{flex:none;font-size:14px;font-weight:600;color:var(--blue);border-bottom:2px solid var(--amber)}
.slist li.p a:hover .more{color:var(--ink)}
.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:40px;font-weight:600}
.pager a,.pager span.off{padding:10px 18px;border:2px solid var(--ink);border-radius:4px;color:var(--ink)}
.pager a:hover{background:var(--ink);color:#fff}
.pager span.off{opacity:.35}
 /* Galerie d'un projet (projet_det.php) */
.gal{list-style:none;padding:0;margin-top:32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.gal button{display:block;width:100%;padding:0;border:2px solid var(--ink);border-radius:4px;background:var(--paper);cursor:zoom-in;overflow:hidden}
.gal img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.gal button:hover{border-color:var(--amber)}
dialog#lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:96vh;overflow:visible}
dialog#lb::backdrop{background:rgba(7,24,43,.9)}
dialog#lb img{display:block;max-width:92vw;max-height:84vh;border-radius:4px}
.lbbar{display:flex;justify-content:space-between;gap:10px;margin-top:10px}
.lbbar button{background:#fff;border:0;border-radius:4px;padding:10px 18px;font-weight:700;cursor:pointer;color:var(--ink)}
.lbbar button:hover{background:var(--amber)}
.lbbar button:hover{background:var(--amber)}
/* Carte (contact.php) */
.mapbox{border-top:2px solid var(--ink)}
.mapbox iframe{display:block;width:100%;height:420px;border:0}
 