/* Pages ville de HN Électricité.
   Reprend les tokens et composants de index.html — garder les deux en phase
   si la charte bouge. */

:root{--navy:#102D40;--orange:#EE6B2D;--muted:#70777B}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;color:var(--navy);font-family:"Source Sans 3",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
[hidden]{display:none!important}

.container-site{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.font-heading{font-family:"Nunito Sans",Arial,sans-serif}
.section-title{font-family:"Nunito Sans",Arial,sans-serif;font-size:clamp(28px,3vw,39px);line-height:1.2;font-weight:800;letter-spacing:-.035em;text-wrap:balance}
.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--orange);text-transform:uppercase;display:block;margin-bottom:15px}

.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;padding:12px 21px;border:1px solid transparent;border-radius:5px;font-size:13px;font-weight:600;line-height:1.45;transition:background .2s,transform .2s,color .2s}
.button:hover{transform:translateY(-2px)}

.brand-mark{width:36px;height:40px;display:grid;place-items:center;background:rgba(238,107,45,.1);color:var(--orange);border-radius:6px}
.nav-link{position:relative;padding:12px 0;color:var(--navy);font-size:13px;transition:color .2s}
.nav-link:hover{color:var(--orange)}
.mobile-toggle{width:42px;height:42px;padding:11px;border:1px solid rgba(16,45,64,.14);border-radius:5px;display:none}
.mobile-toggle span{display:block;height:1.5px;background:var(--navy);margin:5px 0}

/* Hero de page ville : même traitement que l'accueil, moins haut */
.hero-ville{position:relative;isolation:isolate;background:var(--navy);color:white;padding:64px 0 86px;min-height:420px}
.hero-bg{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center 45%;z-index:-3}
.hero-shade{position:absolute;inset:0;background:rgba(16,45,64,.84);z-index:-2}
.hero-ville h1{font-size:clamp(36px,4vw,56px);line-height:1.09;font-weight:850;letter-spacing:-.035em;max-width:800px;text-wrap:balance;margin:0}
.hero-label{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.09);border-radius:30px;padding:7px 13px;font-size:11px;color:rgba(255,255,255,.9)}

.stats{position:relative;margin-top:-43px;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--orange);color:white;border-radius:6px;box-shadow:0 7px 25px rgba(16,45,64,.08)}
.stat{padding:25px 16px;text-align:center;position:relative}
.stat+.stat:before{content:'';position:absolute;left:0;top:28%;bottom:28%;width:1px;background:rgba(255,255,255,.22)}
.stat strong{display:block;font-family:"Nunito Sans",Arial,sans-serif;font-size:clamp(19px,2vw,28px);font-weight:800;line-height:1.2;letter-spacing:-.025em}
.stat span{display:block;font-size:12px;line-height:1.4;margin-top:7px;color:rgba(255,255,255,.87)}

.icon-box{display:grid;place-items:center;height:39px;width:39px;border-radius:6px;background:rgba(238,107,45,.08);color:var(--orange)}
.service-card{display:flex;gap:14px;padding:23px 21px;background:white;border:1px solid rgba(16,45,64,.055);border-radius:5px;transition:transform .25s,box-shadow .25s}
.service-card .icon-box{flex-shrink:0;width:34px;height:34px}
.service-card .icon-box svg{width:21px;height:21px}
.service-card:hover{transform:translateY(-3px);box-shadow:0 9px 23px rgba(16,45,64,.06)}

.faq-item{border-bottom:1px solid rgba(16,45,64,.1);padding:0 3px}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:"Nunito Sans",Arial,sans-serif;font-size:14px;font-weight:700;padding:22px 0;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item p{padding:0 28px 22px 0;font-size:14px;color:var(--muted);line-height:1.8;margin:0}
.faq-item[open] summary{color:var(--orange)}
.faq-item[open] svg{transform:rotate(180deg)}

/* Fil d'Ariane : porte le BreadcrumbList */
.breadcrumb{font-size:12px;font-weight:600;color:var(--muted);list-style:none;margin:0;padding:0}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--orange)}
.breadcrumb li+li:before{content:'/';margin:0 8px;color:rgba(16,45,64,.25)}

/* Maillage interne entre communes */
.ville-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;padding:13px 17px;border:1px solid rgba(16,45,64,.1);border-radius:5px;font-size:13px;font-weight:600;color:var(--navy);transition:border-color .2s,background .2s,color .2s}
.ville-link:hover{border-color:var(--orange);background:rgba(238,107,45,.05);color:var(--orange)}
.ville-link-active{background:var(--navy);border-color:var(--navy);color:white}
.ville-link-active:hover{background:var(--navy);color:white}
ul{list-style:none;margin:0;padding:0}

.footer-link{display:block;font-size:12px;color:var(--muted);padding:4px 0}
.footer-link:hover{color:var(--orange)}
.skip{position:fixed;top:10px;left:10px;z-index:100;padding:12px;background:white;color:var(--navy);transform:translateY(-160%)}
.skip:focus{transform:none}

@media(max-width:1023px){
  .mobile-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:17px 24px 24px;background:white;border-bottom:1px solid rgba(16,45,64,.1);box-shadow:0 15px 20px rgba(16,45,64,.06)}
  .site-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .site-nav .button{margin-top:13px}
  .hero-ville{min-height:380px;padding:56px 0 80px}
}
@media(max-width:639px){
  .container-site{width:calc(100% - 32px)}
  .hero-ville{padding:44px 0 78px;min-height:0;text-align:center}
  .hero-ville h1{font-size:clamp(30px,8vw,44px);margin-inline:auto}
  .hero-description{margin-inline:auto}
  .hero-label{justify-content:center;font-size:9px;padding:7px 11px}
  .hero-actions{display:grid;grid-template-columns:1fr;max-width:390px;margin-inline:auto}
  .stats{grid-template-columns:1fr 1fr;margin-top:-35px}
  .stat{padding:22px 12px}
  .stat span{font-size:10px}
  .stat:nth-child(3):before{display:none}
  .stat:nth-child(n+3){border-top:1px solid rgba(255,255,255,.2)}
  .section-title{font-size:29px}
  .service-card{flex-direction:column;align-items:center;text-align:center;gap:12px}
  .service-card p{max-width:38ch;margin-inline:auto}
  .faq-item summary{font-size:13px;padding:20px 0}
  .faq-item p{font-size:13px}
  #footer>.grid{text-align:center;gap:28px}
  #footer>.grid>div>p{margin-inline:auto}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
  .button:hover,.service-card:hover{transform:none}
}
