/* satimau.ch — charte Maulini */
:root{
  --bleu:#004A86; --bleu-fonce:#00355F; --bleu-clair:#D6E2EF;
  --fond:#F6F8FB; --texte:#1C2530; --gris:#5A6572;
  --titres:'Bebas Neue', Impact, sans-serif;
  --corps:'Gotham','Montserrat',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--corps);color:var(--texte);background:#fff;line-height:1.6;font-size:16px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:var(--titres);color:var(--bleu);font-weight:400;letter-spacing:.02em;line-height:1.1}
h1{font-size:clamp(2.4rem,6vw,4rem)}
h2{font-size:clamp(1.6rem,3.5vw,2.2rem);margin:2rem 0 .8rem}
h3{font-size:1.5rem;margin:.8rem 0 .4rem}
a{color:var(--bleu)}
/* --- barre de navigation --- */
.topbar{position:sticky;top:0;z-index:10;background:var(--bleu);box-shadow:0 2px 8px rgba(0,0,0,.15)}
.topbar .wrap{display:flex;align-items:center;gap:24px;min-height:60px;flex-wrap:wrap}
.brand{font-family:var(--titres);font-size:1.8rem;color:#fff;text-decoration:none;letter-spacing:.06em;display:flex;align-items:center;gap:10px}
.brand-logo{height:34px;width:34px;display:block}
.mainnav{display:flex;gap:4px;flex:1}
.mainnav a{color:#fff;text-decoration:none;padding:8px 14px;border-radius:6px;font-size:.95rem}
.mainnav a:hover{background:var(--bleu-fonce)}
.mainnav a.active{background:var(--bleu-fonce)}
.langs{display:flex;gap:2px}
.langs a{color:#BFD3EA;text-decoration:none;padding:6px 8px;font-size:.8rem;border-radius:4px}
.langs a.active{color:#fff;font-weight:700;background:var(--bleu-fonce)}
#menu-toggle,.burger{display:none}
@media(max-width:760px){
  .burger{display:block;color:#fff;font-size:1.6rem;cursor:pointer;margin-left:auto}
  .mainnav{display:none;width:100%;flex-direction:column}
  #menu-toggle:checked ~ .mainnav{display:flex}
  .langs{margin-left:auto}
}
/* --- héros --- */
.hero{background:linear-gradient(135deg,var(--bleu) 0%,var(--bleu-fonce) 100%);color:#fff;padding:84px 0}
.hero h1{color:#fff}
.hero .lead{max-width:640px;margin:16px 0 28px;font-size:1.1rem;color:#DCE6F2}
.hero.small{padding:48px 0}
.lead{font-size:1.08rem}
/* --- boutons --- */
.btn{display:inline-block;background:#fff0;background:var(--bleu);color:#fff;border:2px solid var(--bleu);padding:12px 26px;border-radius:8px;text-decoration:none;font-weight:600;cursor:pointer;font-family:var(--corps);font-size:1rem}
.btn:hover{background:var(--bleu-fonce);border-color:var(--bleu-fonce)}
.hero .btn{background:#fff;color:var(--bleu);border-color:#fff}
.hero .btn:hover{background:var(--bleu-clair)}
.btn.ghost{background:transparent;color:var(--bleu)}
.btn.ghost:hover{background:var(--bleu-clair)}
/* --- compteur --- */
.counter{background:var(--fond);border-bottom:1px solid var(--bleu-clair)}
.counter-in{display:flex;justify-content:center;text-align:center;padding:28px 0}
.count-label{font-family:var(--titres);font-size:1.3rem;color:var(--gris);letter-spacing:.05em}
.count-num{font-family:var(--titres);font-size:4.2rem;color:var(--bleu);line-height:1}
.count-total,.count-maj{color:var(--gris);font-size:.9rem}
/* --- cartes --- */
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding:48px 20px}
.card{background:#fff;border:1px solid var(--bleu-clair);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.card p{padding:0 18px;flex:1}
.card h3{padding:14px 18px 0}
.card .btn{margin:16px 18px 20px;text-align:center}
/* --- images de remplacement --- */
.img-ph{background:repeating-linear-gradient(45deg,var(--bleu-clair),var(--bleu-clair) 12px,#EAF0F8 12px,#EAF0F8 24px);display:flex;align-items:center;justify-content:center;color:var(--gris);font-size:.85rem;border-radius:8px}
.img-ph.wide{aspect-ratio:16/7;margin:20px 0}
.card .img-ph{border-radius:0;margin:0;aspect-ratio:16/9}
/* --- tableaux --- */
table.tarifs{width:100%;border-collapse:collapse;margin:12px 0 24px}
table.tarifs td{border:1px solid var(--bleu-clair);padding:12px 16px}
table.tarifs tr td:first-child{font-weight:600;background:var(--fond);width:45%}
/* --- KPI recharge --- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px;margin:32px 0}
.kpi{background:var(--fond);border:1px solid var(--bleu-clair);border-radius:12px;text-align:center;padding:18px 8px;color:var(--gris)}
.kpi-num{font-family:var(--titres);font-size:1.9rem;color:var(--bleu)}
/* --- badge --- */
.badge{display:inline-block;background:#B3261E;color:#fff;padding:6px 14px;border-radius:20px;font-size:.85rem;font-weight:600;margin:20px 0 8px}
.badge.libre{background:#1E7B34}
/* --- formulaire --- */
form.demande{margin:24px 0 48px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.grid2 label{display:flex;flex-direction:column;font-size:.9rem;font-weight:600;color:var(--bleu-fonce);gap:4px}
.grid2 .span2{grid-column:1/-1}
.grid2 input,.grid2 select,.grid2 textarea{font-family:var(--corps);font-size:1rem;padding:10px 12px;border:1px solid #B9C6D6;border-radius:8px;background:#fff}
.grid2 input:focus,.grid2 select:focus,.grid2 textarea:focus{outline:2px solid var(--bleu)}
label.consent{flex-direction:row;align-items:flex-start;font-weight:400}
label.consent input{width:auto;margin-top:4px;margin-right:8px}
.note{color:var(--gris);font-size:.85rem;margin:10px 0 18px}
.hp{position:absolute !important;left:-9999px;height:0;width:0;overflow:hidden}
.alert{padding:14px 18px;border-radius:8px;margin:16px 0;font-weight:600}
.alert.ok{background:#EAF3EA;color:#1E4620;border:1px solid #1E7B34}
.alert.err{background:#FBEAEA;color:#7A1F1F;border:1px solid #B3261E}
@media(max-width:640px){.grid2{grid-template-columns:1fr}}
/* --- divers --- */
.loc{padding-bottom:48px}
.privacy h2{font-size:1.4rem;margin-top:1.6rem}
.privacy{padding-bottom:48px}
footer{background:var(--bleu-fonce);color:#BFD3EA;font-size:.85rem}
footer a{color:#fff}
.foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:20px}
main .wrap{padding-top:8px}
.memo{background:var(--fond);border-left:4px solid var(--bleu);padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;font-weight:600;color:var(--bleu-fonce)}
.memo::before{content:'☕ '}
.memo.ev::before{content:'⚡ '}
.memo.pv::before{content:'☀ '}
.coupe{margin:24px 0;text-align:center}
.coupe img{max-width:680px;width:100%;border:1px solid var(--bleu-clair);border-radius:8px;background:#fff}
.coupe figcaption{color:var(--gris);font-size:.9rem;margin-top:6px}
.kpi-t{font-family:var(--titres);font-size:1.4rem;color:var(--bleu)}
.chargelinks{display:flex;gap:14px;flex-wrap:wrap}
.hl{background:#EAF3EA;border-left:4px solid #1E7B34;padding:14px 18px;border-radius:0 8px 8px 0;margin:14px 0;font-weight:600;color:#1E4620}
.tarif-note{color:var(--bleu-fonce);font-weight:600;margin:-8px 0 20px}
.card-photo{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.photos2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}
.photos2 img{width:100%;height:100%;max-height:520px;object-fit:cover;border-radius:8px}
@media(max-width:640px){.photos2{grid-template-columns:1fr}}
.loc-photo{max-width:340px;width:100%;border-radius:8px;margin:8px 0 16px}
.azibay{color:var(--gris);font-size:.95rem;margin-top:10px;border-top:1px solid var(--bleu-clair);padding-top:14px}
.statusband{background:var(--fond);border-bottom:1px solid var(--bleu-clair)}
.statusgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:22px 20px}
.status{display:flex;align-items:center;gap:16px;background:#fff;border:2px solid var(--bleu-clair);border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--texte)}
.status:hover{border-color:var(--bleu);box-shadow:0 2px 10px rgba(31,78,121,.15)}
.st-num{font-family:var(--titres);font-size:3.2rem;color:var(--bleu);line-height:1;min-width:64px;text-align:center}
.st-lbl{font-size:1.05rem;line-height:1.35}
.st-lbl strong{color:var(--bleu-fonce);font-size:1.1rem}
.st-sub{color:var(--gris);font-size:.9rem}
.st-status{color:#B3261E;font-weight:600;font-size:.92rem}
.st-status.ok{color:#1E7B34}
.status.cta{background:var(--bleu);border-color:var(--bleu)}
.status.cta .st-lbl strong{color:#fff;font-size:1.25rem}
.status.cta .st-num{color:#fff}
.status.cta .st-sub{color:#CFE0F2}
.status.cta:hover{background:var(--bleu-fonce)}
@media(max-width:860px){.statusgrid{grid-template-columns:1fr}}
