/* Altera Énergie – feuille de style
   Aucune ressource externe : pas de polices Google, pas de cookies, pas de traceurs. */

:root{
  --paper:#FFFFFF; --mist:#F1F3F4; --ink:#1C2329; --steel:#5E6A72;
  --rule:#D5DADD; --signal:#DF0000; --on-signal:#FFFFFF;
  --night:#1C2329; --on-night:#F1F3F4; --night-muted:#A9B3B9; --lake:#CFDDE5;
  --max:1200px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#14191D; --mist:#1B2227; --ink:#E8ECEE; --steel:#9AA5AB;
    --rule:#2E373D; --night:#0F1418; --on-night:#E8ECEE; --night-muted:#9AA5AB; --lake:#263843;
    color-scheme: dark;
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1.25rem,4vw,2.5rem)}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;background:var(--signal);color:var(--on-signal);padding:.5rem 1rem;z-index:10}

/* ---------- En-tête ---------- */
.site-header{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:4.5rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:700;font-size:1.15rem;letter-spacing:-.01em}
.brand-mark{width:auto;height:42px;flex:none}
.wordmark{font-weight:400;font-size:1.25rem;letter-spacing:.32em;line-height:1}
.wordmark small{display:block;font-size:.62rem;letter-spacing:.2em;color:var(--steel);margin-top:.3rem;text-transform:uppercase}
.brand img{height:40px;width:auto}
.menu{display:flex;gap:2rem;list-style:none;margin:0;padding:0}
.menu a{text-decoration:none;color:var(--steel);font-size:.98rem}
.menu a:hover,.menu a[aria-current="page"]{color:var(--ink)}
.menu .cta a{background:var(--signal);color:var(--on-signal);padding:.6rem 1rem;font-weight:700}
.menu-toggle{display:none;background:none;border:1px solid var(--rule);color:var(--ink);
  font:inherit;padding:.45rem .8rem;cursor:pointer}
@media (max-width:860px){
  .menu-toggle{display:block}
  .menu{display:none;position:absolute;top:4.5rem;left:0;right:0;flex-direction:column;gap:0;
    background:var(--paper);border-bottom:1px solid var(--rule);padding:.5rem clamp(1.25rem,4vw,2.5rem) 1.25rem}
  .menu.open{display:flex}
  .menu li{border-top:1px solid var(--rule)}
  .menu a{display:block;padding:.9rem 0}
  .menu .cta{border:none;padding-top:1rem}
  .menu .cta a{display:inline-block}
}

/* ---------- Accueil ---------- */
.hero{background:var(--night);color:var(--on-night);padding:clamp(4rem,10vw,7.5rem) 0 0;overflow:hidden}
.hero h1{font-size:clamp(2.4rem,6.6vw,5.6rem);font-weight:500;line-height:1.02;letter-spacing:-.035em;
  margin:0;max-width:15ch}
.hero p{color:var(--night-muted);font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:46ch;margin:2rem 0 2.5rem}
.actions{display:flex;flex-wrap:wrap;gap:1rem}
.btn{display:inline-block;padding:1rem 1.5rem;font-weight:700;text-decoration:none}
.btn-signal{background:var(--signal);color:var(--on-signal)}
.btn-ghost{border:1px solid currentColor}
.btn-ghost:hover{background:var(--on-night);color:var(--night)}

.line-art{display:block;width:100%;height:auto;margin-top:clamp(2.5rem,6vw,4.5rem)}
.line-art .steel{stroke:var(--on-night);fill:none;stroke-width:1.8}
.line-art .wood{stroke:var(--night-muted);fill:none;stroke-width:5;stroke-linecap:round}
.line-art .ground{stroke:var(--night-muted);stroke-width:1;opacity:.5}
.line-art .cable{stroke:var(--on-night);fill:none;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:1;
  animation:tirage 2.4s cubic-bezier(.45,0,.2,1) .4s forwards}
.line-art .cable.opgw{stroke:var(--signal)}
@keyframes tirage{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.line-art .cable{animation:none;stroke-dashoffset:0}}

/* Bandeau de faits */
.facts{border-bottom:1px solid var(--rule)}
.facts ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.facts li{padding:1.6rem 1.5rem 1.6rem 0;border-right:1px solid var(--rule)}
.facts li:last-child{border-right:none}
.facts li + li{padding-left:1.5rem}
.facts strong{display:block;font-size:1.05rem}
.facts span{color:var(--steel);font-size:.95rem}
@media (max-width:860px){
  .facts ul{grid-template-columns:1fr}
  .facts li,.facts li + li{padding:1rem 0;border-right:none;border-bottom:1px solid var(--rule)}
  .facts li:last-child{border-bottom:none}
}

/* ---------- Sections ---------- */
.section{padding:clamp(4.5rem,9vw,7.5rem) 0}
.section.tint{background:var(--mist)}
.section-head{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head h2{grid-column:1 / span 5;margin:0;font-size:clamp(2rem,4vw,3.2rem);font-weight:500;
  letter-spacing:-.03em;line-height:1.05}
.section-head p{grid-column:7 / span 6;margin:0;color:var(--steel);font-size:1.15rem;align-self:end;max-width:52ch}
@media (max-width:860px){
  .section-head{grid-template-columns:1fr}
  .section-head h2,.section-head p{grid-column:auto}
}

/* Prestations : une ligne par niveau de tension */
.services{border-top:2px solid var(--ink)}
.service{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;padding:2.25rem 0;border-bottom:1px solid var(--rule)}
.service .level{grid-column:1 / span 3;font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:500;letter-spacing:-.03em;line-height:1}
.service .desc{grid-column:4 / span 4}
.service h3{margin:0 0 .5rem;font-size:1.2rem;line-height:1.3}
.service .desc p{margin:0;color:var(--steel);max-width:40ch}
.service ul{grid-column:9 / span 4;margin:0;padding:0;list-style:none}
.service li{break-inside:avoid;padding:0 0 .7rem 1.1rem;position:relative}
.service li::before{content:"";position:absolute;left:0;top:.62em;width:.45rem;height:2px;background:var(--steel)}
@media (max-width:860px){
  .service{grid-template-columns:1fr;gap:.75rem}
  .service .level,.service .desc,.service ul{grid-column:auto}
  .service ul{columns:1;margin-top:.5rem}
}
.callout{margin-top:3rem;display:flex;flex-wrap:wrap;gap:1rem 3rem;padding:1.5rem 1.75rem;
  background:var(--paper);border-left:6px solid var(--signal)}
.section.tint .callout{background:var(--paper)}
.callout p{margin:0}

/* Déroulement d'un mandat (séquence réelle → numérotation justifiée) */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);counter-reset:step;border-top:2px solid var(--ink)}
.steps li{counter-increment:step;padding:1.5rem 1.5rem 0 0}
.steps li::before{content:counter(step);display:block;font-size:2.4rem;font-weight:500;letter-spacing:-.03em;margin-bottom:.75rem;color:var(--steel)}
.steps h3{margin:0 0 .4rem;font-size:1.1rem}
.steps p{margin:0;color:var(--steel);font-size:.98rem}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* Entreprise */
.about{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}
.about .text{grid-column:1 / span 5}
.about .text p{margin:0 0 1.25rem;max-width:52ch}
.about .people{grid-column:7 / span 6;display:grid;gap:1.5rem}
.photo{aspect-ratio:3/2;background:var(--mist) center/cover no-repeat;margin-bottom:1.5rem}
.person{border-top:2px solid var(--ink);padding-top:1.25rem}
.person h3{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.01em}
.person .role{margin:0 0 .9rem;color:var(--steel)}
.person ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}
.person li{border:1px solid var(--rule);padding:.25rem .65rem;font-size:.92rem}
@media (max-width:860px){
  .about{grid-template-columns:1fr}
  .about .text,.about .people{grid-column:auto}
}

/* Zone */
.zone{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;align-items:start}
.zone .map{grid-column:1 / span 6}
.zone .map svg{width:100%;height:auto;background:var(--paper);border-radius:12px;padding:1rem}
.zone .map .lake{fill:var(--lake);stroke:none}
.zone .map .river{fill:none;stroke:var(--lake);stroke-width:3;stroke-linecap:round}
.zone .map .town{fill:var(--steel)}
.zone .map .place{font-weight:700;font-size:14px}
.zone .map .pin{fill:var(--signal);stroke:var(--paper);stroke-width:2}
.zone .map text{fill:var(--ink);font-size:13px;font-family:inherit}
.zone .map .small{fill:var(--steel);font-size:11px}
.zone dl{grid-column:8 / span 5;margin:0}
.zone dt{font-weight:700;border-top:1px solid var(--rule);padding-top:1rem}
.zone dd{margin:0 0 1.5rem;color:var(--steel)}
@media (max-width:860px){
  .zone{grid-template-columns:1fr}
  .zone .map,.zone dl{grid-column:auto}
}

/* Contact */
.contact{background:var(--signal);color:var(--on-signal)}
.contact .section-head p{color:var(--on-signal);opacity:.8}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:2px solid var(--on-signal)}
.contact-grid > div{padding-top:1.25rem}
.contact-grid h3{margin:0 0 .5rem;font-size:1.1rem}
.contact-grid p{margin:0 0 .25rem}
.contact-grid a{font-weight:700;text-decoration:none;border-bottom:1px solid}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr}}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--night);color:var(--night-muted);padding:3rem 0;font-size:.95rem}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem}
.site-footer p{margin:0 0 .3rem}
.site-footer strong{color:var(--on-night)}
.site-footer a{color:var(--on-night)}

/* ---------- Pages juridiques ---------- */
.legal-hero{background:var(--night);color:var(--on-night);padding:clamp(3rem,7vw,5rem) 0}
.legal-hero h1{margin:0;font-size:clamp(2.2rem,5vw,4rem);font-weight:500;letter-spacing:-.035em;line-height:1.05}
.legal-hero p{color:var(--night-muted);margin:1rem 0 0}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);overflow-x:auto}
.tabs a{padding:1.1rem 1.25rem 1rem 0;margin-right:1.25rem;text-decoration:none;color:var(--steel);border-bottom:3px solid transparent;white-space:nowrap}
.tabs a:hover{color:var(--ink)}
.legal{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;padding:clamp(3rem,6vw,5rem) 0}
.legal article{grid-column:1 / span 8}
.legal h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;letter-spacing:-.025em;margin:0 0 1.5rem;
  padding-top:1rem;border-top:2px solid var(--ink)}
.legal h2:not(:first-child){margin-top:4rem}
.legal h3{font-size:1.1rem;margin:2rem 0 .5rem}
.legal p,.legal li{max-width:68ch}
.legal dl{display:grid;grid-template-columns:12rem 1fr;gap:.5rem 1.5rem;margin:0}
.legal dt{font-weight:700}
.legal dd{margin:0}
.legal .updated{color:var(--steel);font-size:.95rem;margin-top:3rem}
@media (max-width:860px){
  .legal article{grid-column:1 / -1}
  .legal dl{grid-template-columns:1fr}
  .legal dd{margin-bottom:.75rem}
}
