/*
Theme Name: HZ Énergie
Description: Site vitrine HZ Énergie, adapté aux écrans mobiles, sans Divi ni blog.
Version: 1.2.2
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: hz-energie
License: GPL-2.0-or-later
*/
@font-face { font-family:Lato; src:url('assets/fonts/lato-400-normal.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:Lato; src:url('assets/fonts/lato-700-normal.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:Lato; src:url('assets/fonts/lato-400-italic.ttf') format('truetype'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:Montserrat; src:url('assets/fonts/montserrat-400-normal.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:Montserrat; src:url('assets/fonts/montserrat-500-normal.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:Montserrat; src:url('assets/fonts/montserrat-700-normal.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:86px; }
body { margin:0; }
.wp-site-blocks { min-height:100svh; display:flex; flex-direction:column; }
.wp-site-blocks > * { margin-block-start:0; }
.hz-main { flex:1; width:100%; margin:0; }
.hz-main .wp-block-post-content > * { margin-block-start:0; margin-block-end:0; }
.hz-header-shell { position:sticky; top:0; z-index:100; background:#737373; transition:background .25s ease,box-shadow .25s ease; }
.hz-has-hero .hz-header-shell { position:fixed; inset:0 0 auto; background:transparent; }
.hz-header-shell.is-scrolled { background:#737373; box-shadow:0 1px 5px #0002; }
.admin-bar .hz-header-shell { top:32px; }
.hz-header { padding:0 3.5vw; color:white; }
.hz-header-inner { min-height:86px; width:100%; max-width:none!important; gap:24px; }
.hz-brand { color:white; font-family:Montserrat,Arial,sans-serif; font-weight:700; text-transform:uppercase; white-space:nowrap; line-height:1.2; }
.hz-brand a { color:inherit; text-decoration:none; }
.hz-navigation { font-family:Montserrat,Arial,sans-serif; font-size:15px; font-weight:400; text-transform:uppercase; }
.hz-navigation .wp-block-navigation__container { gap:12px; }
.hz-navigation .wp-block-navigation-item__content { padding:8px 12px; border:2px solid transparent; text-decoration:none; transition:border-color .2s ease,background .2s ease; }
.hz-navigation .current-menu-item > .wp-block-navigation-item__content,
.hz-navigation .wp-block-navigation-item__content:hover { border-color:currentColor; }
.hz-navigation .wp-block-navigation__responsive-container-open { padding:10px; color:inherit; }
.hz-navigation .wp-block-navigation__responsive-container.is-menu-open { padding:28px; color:#0d0d0d; }
.hz-navigation .is-menu-open .wp-block-navigation__responsive-container-content { padding-top:64px; align-items:center; }
.hz-navigation .is-menu-open .wp-block-navigation__container { align-items:center; gap:12px; }
.hz-navigation .is-menu-open .wp-block-navigation-item__content { font-size:19px; text-align:center; }
.hz-navigation .is-menu-open .current-menu-item > .wp-block-navigation-item__content { border-color:#cc9e00; }
.hz-hero { min-height:480px; padding:115px 24px 60px; color:white; }
.hz-hero .wp-block-cover__inner-container { width:100%; max-width:1100px; margin:auto; }
.hz-hero h1 { color:#fff; text-align:center; font-family:Montserrat,Arial,sans-serif; font-size:clamp(36px,5.5vw,76px); font-weight:700; line-height:1.2; margin:0 auto 34px; max-width:1100px; }
.hz-hero .wp-block-button__link { font-family:Montserrat,Arial,sans-serif; font-size:clamp(18px,2vw,24px); font-weight:700; padding:8px 22px; }
.hz-services-hero { min-height:420px; }
.hz-section { padding:54px 24px; }
.hz-inner { max-width:1200px!important; margin-inline:auto!important; width:100%; }
.hz-intro h2, .hz-services-overview > h2 { font-size:clamp(28px,3vw,40px); text-align:center; font-weight:400; margin:0 0 26px; }
.hz-lead { font-family:Montserrat,Arial,sans-serif; font-style:italic; font-size:clamp(19px,2vw,25px); line-height:1.5; text-align:center; color:#997600; max-width:1200px; margin:0 auto!important; }
.hz-services-overview { background:#f2f2f2; padding:54px 24px 70px; }
.hz-services-overview > h2 { margin:0 0 60px; }
.hz-service-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:28px; max-width:1200px; margin-inline:auto; }
.hz-service-grid > .hz-service-card { margin-block:0; }
.hz-service-card { display:flex; flex-direction:column; text-align:center; min-width:0; }
.hz-service-card .wp-block-image { margin:0; overflow:hidden; }
.hz-service-card img { display:block; width:100%; aspect-ratio:5/6; object-fit:cover; transition:transform .3s ease; }
.hz-service-card:hover img { transform:scale(1.025); }
.hz-service-card h3 { font-family:Montserrat,Arial,sans-serif; font-size:clamp(19px,1.75vw,26px); font-weight:400; line-height:1.4; margin:24px 0 40px; }
.hz-service-card .wp-block-buttons { margin-top:auto; margin-bottom:0; justify-content:center; }
.hz-service-card .wp-block-button__link { font-size:16px; border-radius:8px; padding:10px 15px; }
.hz-partners { padding:54px 0 58px; background:#fff; overflow:hidden; }
.hz-partners-heading { position:relative; max-width:1200px; margin:0 auto 28px; padding:0 58px; }
.hz-partners h2 { margin:0; text-align:center; font-family:Montserrat,Arial,sans-serif; font-size:clamp(28px,3vw,40px); font-weight:400; color:#545454; }
.hz-partners-toggle { display:none; position:absolute; right:8px; top:50%; transform:translateY(-50%); width:44px; height:44px; align-items:center; justify-content:center; padding:0; border:1px solid #d0d0d0; border-radius:50%; background:#fff; color:#545454; cursor:pointer; }
.hz-partners.is-enhanced .hz-partners-toggle { display:flex; }
.hz-partners-toggle:hover { border-color:#997600; color:#806300; }
.hz-partners-toggle .hz-play-icon, .hz-partners.is-paused .hz-pause-icon { display:none; }
.hz-partners.is-paused .hz-play-icon { display:block; }
.hz-partners-viewport { width:100%; overflow:hidden; }
.hz-partners-track { display:flex; width:max-content; animation:hz-partners-scroll 120s linear infinite; will-change:transform; }
.hz-partners-group { display:flex; align-items:center; flex-shrink:0; gap:64px; padding:8px 32px; margin:0; list-style:none; }
.hz-partners-group li { flex:0 0 210px; margin:0; }
.hz-partner { display:flex; width:210px; height:96px; align-items:center; justify-content:center; text-decoration:none; border-radius:4px; }
.hz-partner img { display:block; width:190px; height:76px; object-fit:contain; transition:transform .2s ease; }
.hz-partner:hover img { transform:scale(1.04); }
.hz-partner-lausanne img { width:210px; }
.hz-partner-sefa img { height:70px; object-fit:cover; }
.hz-partner-orllati img { filter:brightness(0); width:160px; }
.hz-partner-romande img { height:90px; }
.hz-partners:hover .hz-partners-track, .hz-partners-viewport:focus-within .hz-partners-track, .hz-partners.is-paused .hz-partners-track { animation-play-state:paused; }
/* Le clavier accède à chaque lien dans une liste fixe et défilable. */
.hz-partners-viewport.is-keyboard-active { overflow-x:auto; }
.hz-partners-viewport.is-keyboard-active .hz-partners-track { animation:none; transform:none; }
.hz-partners-viewport.is-keyboard-active .hz-partners-group[aria-hidden] { display:none; }
@keyframes hz-partners-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.hz-service-strip { margin:0!important; min-height:480px; }
.hz-service-strip .wp-block-media-text__media { align-self:stretch; position:relative; min-height:480px; overflow:hidden; }
.hz-service-strip .wp-block-media-text__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hz-service-strip .wp-block-media-text__content { padding:50px clamp(28px,4vw,64px)!important; }
.hz-service-strip h2 { font-size:clamp(26px,2.45vw,34px); font-weight:400; line-height:1.4; margin:0 0 26px; }
.hz-service-strip p, .hz-service-strip ul { font-size:17px; line-height:1.8; }
.hz-service-strip ul { padding-left:24px; margin:0 0 20px; }
.hz-service-strip p { margin:0 0 20px; }
.hz-service-strip .wp-block-buttons { margin-top:18px; justify-content:flex-start; }
.hz-service-strip.has-media-on-the-right .wp-block-media-text__content { padding-left:max(28px,calc((100vw - 1200px)/2))!important; }
.hz-about-intro { padding:54px 24px; }
.hz-about-intro h1 { font-size:34px; font-weight:400; text-align:center; margin:0 0 24px; }
.hz-about-intro p { margin:0; font-size:17px; }
.hz-about-cta { background:#ffc500; color:#000; padding:54px 24px; }
.hz-about-cta .hz-inner { max-width:600px!important; }
.hz-about-cta h2 { font-size:34px; color:#000; line-height:1.4; margin:0 0 24px; }
.hz-about-cta p { margin:0 0 18px; color:#000; }
.hz-about-cta .wp-block-buttons { justify-content:flex-start; }
.hz-about-cta .wp-block-button__link { background:#000; color:#fff; font-size:22px; }
.hz-contact-section { padding:54px 24px 100px; min-height:calc(100svh - 200px); }
.hz-contact-columns { max-width:1200px; margin:auto!important; gap:70px; }
.hz-contact-columns h1, .hz-contact-columns h2 { font-size:32px; font-weight:400; margin:0 0 30px; }
.hz-form-column { padding-right:40px; }
.hz-contact-form { display:grid; gap:18px; }
.hz-contact-form label { display:grid; gap:9px; font-size:17px; }
.hz-contact-form input, .hz-contact-form textarea { width:100%; border:1px solid #bcbcbc; background:#fff; border-radius:0; font:inherit; padding:9px 12px; color:#333; min-height:44px; }
.hz-contact-form textarea { min-height:110px; resize:vertical; }
.hz-contact-form button { justify-self:start; border:0; border-radius:30px; padding:10px 20px; background:#ffc500; color:#000; font:inherit; font-size:17px; min-height:44px; }
.hz-contact-form button:disabled { cursor:not-allowed; }
.hz-form-note { margin:0; font-size:14px; color:#646464; line-height:1.6; }
.hz-map { width:100%; height:190px; border:0; display:block; background:#eee; }
.hz-location-name, .hz-address { text-align:center; }
.hz-location-name { margin:16px 0; }
.hz-address { margin:0 0 18px; }
.hz-contact-links { display:grid; gap:16px; }
.hz-contact-links a { border:2px solid #806300; border-radius:40px; padding:5px 15px; color:#806300; text-align:center; text-decoration:none; display:block; min-height:44px; }
.hz-social-links { justify-content:center; margin-top:20px!important; gap:10px; }
.hz-social-links .wp-social-link { background:#ffc500; color:#000; font-size:24px; }
.hz-footer { background:#f2f2f2; color:#737373; padding:34px 24px; }
.hz-footer-inner { max-width:1200px!important; margin:auto; font-size:14px; }
.hz-not-found { padding:80px 24px; max-width:1200px; margin:auto; }
.hz-not-found h1 { font-size:36px; }
.wp-block-button__link { transition:filter .2s ease,transform .2s ease; }
.wp-block-button__link:hover { filter:brightness(.96); transform:translateY(-1px); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid #cc9e00; outline-offset:4px; }
.hz-about-spacer { height:140px!important; }
@media (min-width:600px) and (max-width:1000px) {
 .hz-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
 .hz-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display:flex; }
}
@media (max-width:1000px) {
 .hz-service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
 .hz-header-inner { min-height:76px; }
 .hz-contact-columns { gap:40px; }
 .hz-form-column { padding-right:0; }
 .hz-service-strip .wp-block-media-text__content { padding:36px 28px!important; }
}
@media (max-width:781px) {
 .hz-contact-columns { gap:44px; }
 .hz-contact-section { padding-bottom:64px; }
 .hz-contact-columns h1, .hz-contact-columns h2 { font-size:28px; }
 .hz-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; }
 .hz-service-card h3 { font-size:20px; margin-bottom:24px; }
 .hz-services-overview > h2 { margin-bottom:36px; }
}
@media (max-width:600px) {
 .hz-header { padding:0 20px; }
 .hz-header-inner { min-height:74px; }
 .hz-brand { font-size:22px!important; }
 .hz-hero { min-height:520px!important; padding:120px 22px 55px; }
 .hz-hero h1 { font-size:clamp(32px,8.9vw,48px); line-height:1.24; margin-bottom:30px; }
 .hz-services-hero { min-height:350px!important; padding-top:110px; }
 .hz-section { padding:40px 22px; }
 .hz-service-grid { grid-template-columns:1fr; max-width:360px; gap:42px; }
 .hz-service-card h3 { margin:20px 0; font-size:24px; }
 .hz-service-card img { aspect-ratio:5/4; }
 .hz-services-overview { padding:40px 22px 52px; }
 .hz-partners { padding:40px 0; }
 .hz-partners-heading { padding:0 62px 0 22px; margin-bottom:20px; }
 .hz-partners h2 { text-align:left; font-size:24px; }
 .hz-partners-toggle { right:18px; }
 .hz-partners-group { gap:40px; padding-inline:20px; }
 .hz-partners-group li { flex-basis:180px; }
 .hz-partner { width:180px; }
 .hz-partner img, .hz-partner-lausanne img { max-width:170px; }
 .hz-partners-track { animation-duration:100s; }
 .hz-service-strip { display:flex!important; flex-direction:column; min-height:0; }
 .hz-service-strip .wp-block-media-text__media { order:0; width:100%; height:300px; min-height:0; }
 .hz-service-strip .wp-block-media-text__media img { height:300px; }
 .hz-service-strip .wp-block-media-text__content { order:1; padding:36px 22px!important; width:100%; }
 .hz-service-strip.has-media-on-the-right .wp-block-media-text__content { padding-left:22px!important; }
 .hz-service-strip h2 { font-size:28px; }
 .hz-about-intro, .hz-about-cta { padding:40px 22px; }
 .hz-about-intro h1, .hz-about-cta h2 { font-size:28px; }
 .hz-contact-section { padding:40px 22px 64px; }
 .hz-about-spacer { height:64px!important; }
 .hz-footer { padding:28px 22px; }
 .hz-map { height:230px; }
 .admin-bar .hz-header-shell { top:46px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none!important; animation:none!important; }
 .hz-partners-track { width:100%; transform:none; }
 .hz-partners-group { flex-wrap:wrap; justify-content:center; width:100%; gap:20px 32px; }
 .hz-partners-group[aria-hidden], .hz-partners.is-enhanced .hz-partners-toggle { display:none; }
}
