:root{--ink:#10283a;--navy:#0f3d57;--coral:#e4572e;--sun:#f2a541;--palm:#2f6b4f;--sand:#f5f1e8;--line:#dcd6c8;--muted:#5b6b78;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 "Libre Franklin",system-ui,sans-serif;color:var(--ink);background:#fbfaf6}
h1,h2,h3{font-family:"Source Serif 4",Georgia,serif;line-height:1.2;margin:0 0 .5em;color:var(--navy)}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}h2{font-size:1.6rem}h3{font-size:1.15rem}
p{margin:0 0 1em;max-width:68ch}
a{color:var(--navy)}a:focus-visible,button:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.topbar{background:var(--navy);color:#d7e6ee;font-size:.82rem;padding:6px 0}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.head{background:var(--white);border-bottom:3px solid var(--coral);position:sticky;top:0;z-index:20}
.head .wrap{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.brand strong{display:block;font:700 1.25rem "Source Serif 4",Georgia,serif;line-height:1.1}
.brand small{color:var(--muted);font-size:.78rem}
nav{display:flex;gap:4px}
nav a{padding:10px 14px;text-decoration:none;color:var(--ink);font-weight:500;border-radius:4px}
nav a:hover{background:var(--sand)}
nav a.on{color:var(--coral);box-shadow:inset 0 -3px 0 var(--coral);border-radius:0}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:10px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--navy);margin:4px 0}
/* hero : dépose assets/img/hero.jpg (photo Vice City) pour remplacer le dégradé */
.hero{color:#fff;padding:110px 0 120px;background:linear-gradient(180deg,rgba(15,61,87,.55),rgba(15,61,87,.85)),url(../img/hero.jpg) center/cover,linear-gradient(160deg,#0f3d57 0%,#1a7a8c 45%,#e4572e 100%)}
.hero h1{color:#fff;max-width:14ch}.hero p{font-size:1.15rem;color:#eaf3f7}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-block;background:var(--coral);color:#fff;padding:12px 22px;border-radius:4px;text-decoration:none;font-weight:600;border:2px solid var(--coral)}
.btn:hover{background:#c9461f;border-color:#c9461f}
.btn.ghost{background:transparent;border-color:#fff}.btn.ghost:hover{background:rgba(255,255,255,.15)}
.profils{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-50px;position:relative}
.profils a{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--sun);padding:22px;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px rgba(16,40,58,.08)}
.profils a:nth-child(2){border-top-color:var(--palm)}.profils a:nth-child(3){border-top-color:var(--coral)}
.profils a:hover{transform:translateY(-2px)}.profils p{margin:0;color:var(--muted)}
.sec{padding:56px 20px}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid4{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.grid4c{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:var(--white);border:1px solid var(--line);border-radius:4px;padding:22px}
.card p:last-child{margin-bottom:0}
.meta{color:var(--coral);font-size:.85rem;font-weight:600;margin-bottom:6px}
.band{background:var(--sand);padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.links{list-style:none;padding:0;margin:0 0 16px}
.links li{border-bottom:1px solid var(--line);padding:10px 0}
.links a{text-decoration:none}.links a:hover{text-decoration:underline}
.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:0 0 20px}
.facts dt{font-weight:600}.facts dd{margin:0}
.pagehead{background:linear-gradient(120deg,var(--navy),#1a7a8c);color:#fff;padding:48px 0}
.pagehead h1{color:#fff;font-size:2.4rem;margin-bottom:.2em}.pagehead p{margin:0;color:#dcecf2}
.mt{margin-top:48px}
.gov{display:flex;gap:28px;align-items:center;background:var(--white);border:1px solid var(--line);border-left:6px solid var(--coral);padding:28px}
.portrait{flex:none;width:120px;height:120px;border-radius:50%;background:var(--navy);color:var(--sun);display:grid;place-items:center;font:700 2.2rem "Source Serif 4",serif}
.portrait.sm{width:64px;height:64px;font-size:1.3rem;margin-bottom:12px}
.role{color:var(--coral);font-weight:600;margin-bottom:.4em}
.svc h3 span{display:block;font:400 .9rem "Libre Franklin",sans-serif;color:var(--muted);margin-top:2px}
.svc ul{margin:0;padding-left:18px}.svc{scroll-margin-top:100px}
.notice{margin-top:28px;background:#fff6e5;border:1px solid var(--sun);padding:16px 20px}
.news{display:grid;gap:16px;max-width:820px}
.mapgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;align-items:start}
.mapbox{border:1px solid var(--line);background:#cfe7ee}.mapbox svg{display:block;width:100%;height:auto}
.reg{fill:#f1ead6;stroke:var(--navy);stroke-width:2;cursor:pointer;transition:fill .15s}
.reg:hover{fill:var(--sun)}.reg.sel{fill:var(--coral)}
.lbl{font:600 13px "Libre Franklin",sans-serif;fill:var(--ink);pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:3px}
.lbl.sea{fill:#3a7284;font-style:italic;stroke:none}
.note{color:var(--muted);font-size:.9rem;margin-top:16px}
.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.tabs a{padding:10px 20px;border:1px solid var(--line);background:var(--white);text-decoration:none;border-radius:4px;font-weight:500}
.tabs a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.foot{background:var(--ink);color:#bfd0da;padding:48px 0 0;margin-top:40px}
.foot a{display:block;color:#bfd0da;text-decoration:none;margin:4px 0}.foot a:hover{color:#fff}
.foot strong{color:#fff;display:block;margin-bottom:8px}
.legal{border-top:1px solid #2a4357;margin-top:32px;padding:18px 20px;font-size:.82rem}
@media(max-width:900px){
 .grid3,.grid4c,.profils{grid-template-columns:1fr 1fr}.grid4{grid-template-columns:1fr 1fr}
 .mapgrid{grid-template-columns:1fr}
}
@media(max-width:720px){
 .burger{display:block}
 nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;border-bottom:3px solid var(--coral);padding:8px 20px}
 nav.open{display:flex}
 .grid2,.grid3,.grid4c,.profils,.grid4{grid-template-columns:1fr}
 .hero{padding:70px 0 90px}.gov{flex-direction:column;text-align:center}
 .topbar .wrap span:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
