/* ============================================================
   Enerton — styles site (header, footer, composants, homepage)
   Fidèle à la version Lovable. Tokens dans style.css (:root).
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--enerton-bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
/* Neutralise toute contrainte de largeur du thème parent (Hello Elementor) */
.site-main, main#content, #content { max-width: none !important; width: 100%; margin: 0 !important; padding: 0 !important; }
.ent-header, .ent-footer, .ent-hero, .ent-section, .ent-cta-banner { width: 100%; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--enerton-blue); text-decoration: none; }

.ent-container { width: 100%; max-width: 1340px; margin: 0 auto; padding-inline: 40px; }
@media (max-width: 768px) { .ent-container { padding-inline: 20px; } }
.ent-eyebrow { display:inline-block; color: var(--enerton-blue); text-transform: uppercase; letter-spacing: .12em; font-weight: 600; font-size: .78rem; margin-bottom: 14px; }
.ent-section { padding: 84px 0; }
.ent-section--soft { background: var(--enerton-bg-soft); }
.ent-section--navy { background: var(--enerton-navy); color: #fff; }
.ent-h2 { font-family:'Space Grotesk',sans-serif; font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height:1.12; letter-spacing:-.02em; margin:0 0 16px; color: var(--enerton-ink); }
.ent-section--navy .ent-h2 { color:#fff; }
.ent-lead { color: var(--enerton-muted); font-size:1.05rem; line-height:1.6; max-width: 62ch; }
.ent-section--navy .ent-lead { color: rgba(255,255,255,.78); }
.ent-section--navy { position:relative; overflow:hidden; }
.ent-section--navy > .ent-container { position:relative; z-index:1; }
.ent-section--navy::before { content:""; position:absolute; inset:0; pointer-events:none;
  background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px); background-size:24px 24px;
  -webkit-mask-image: linear-gradient(180deg,#000,transparent 96%); mask-image: linear-gradient(180deg,#000,transparent 96%); }

/* ---------- Boutons ---------- */
.ent-btn { display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:.95rem;
  padding: 13px 22px; border-radius: var(--enerton-radius); border:1px solid transparent; cursor:pointer; transition: all .18s ease; }
.ent-btn--primary { background: var(--enerton-navy); color:#fff; }
.ent-btn--primary:hover { background: #0e1740; transform: translateY(-1px); }
.ent-btn--light { background:#fff; color: var(--enerton-navy); }
.ent-btn--light:hover { background: var(--enerton-accent); }
.ent-btn--ghost { background: transparent; color:#fff; border-color: rgba(255,255,255,.35); }
.ent-btn--ghost:hover { background: rgba(255,255,255,.1); }
.ent-btn--outline { background:transparent; color: var(--enerton-navy); border-color: var(--enerton-border); }
.ent-btn--outline:hover { border-color: var(--enerton-navy); }

/* ---------- Header ---------- */
.ent-header { position: sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--enerton-border); }
.ent-header__inner { display:flex; align-items:center; gap:20px; height:72px; }
.ent-logo { display:flex; align-items:center; flex-shrink:0; }
.ent-logo img { height:40px; width:auto; display:block; }
.ent-nav { margin-left:auto; }
.ent-menu { list-style:none; display:flex; flex-wrap:nowrap; align-items:center; gap:2px; margin:0; padding:0; }
.ent-menu > li { position:relative; }
.ent-menu > li.ent-has-sub { display:flex; align-items:center; }
/* :not(.ent-btn) — le CTA « Nous contacter » est un bouton posé dans le menu.
   Sans cette exclusion, la couleur de lien (ink, puis blue au survol) écrase le
   blanc de .ent-btn--primary (0-1-2 bat 0-1-0) → texte sombre sur fond navy.
   Invisible sur desktop, où le CTA vit hors du menu. */
.ent-menu > li > a:not(.ent-btn) { display:inline-flex; align-items:center; padding:8px 10px; color:var(--enerton-ink); font-size:.85rem; font-weight:500; white-space:nowrap; border-radius:8px; }
.ent-menu > li > a:not(.ent-btn):hover { color:var(--enerton-blue); }
.ent-nav__install > a { color:var(--enerton-muted); gap:5px; }
.ent-nav__install > a:hover { color:var(--enerton-navy); }
.ent-lock { font-size:.74rem; }

/* Caret + état */
.ent-sub-toggle { -webkit-appearance:none; appearance:none; background:transparent !important; border:0;
  box-shadow:none !important; outline:none; -webkit-tap-highlight-color:transparent;
  padding:8px 8px 8px 0; margin-left:-6px; cursor:pointer; color:var(--enerton-muted); line-height:1; }
.ent-sub-toggle:hover, .ent-sub-toggle:focus, .ent-sub-toggle:active { background:transparent !important; box-shadow:none !important; }
.ent-sub-toggle:focus-visible { outline:2px solid var(--enerton-blue); outline-offset:2px; border-radius:6px; }
.ent-caret { display:inline-block; font-size:.7rem; transition:transform .16s ease; }
.ent-has-sub:hover .ent-sub-toggle, .ent-has-sub:focus-within .ent-sub-toggle { color:var(--enerton-blue); }

/* Sous-menu (desktop = panneau flottant) */
.ent-sub { list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 6px); left:0; min-width:218px;
  background:#fff; border:1px solid var(--enerton-border); border-radius:12px; box-shadow:var(--enerton-shadow-card);
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s; z-index:60; }
.ent-sub--wide { min-width:260px; }
.ent-has-sub:hover > .ent-sub, .ent-has-sub:focus-within > .ent-sub, .ent-has-sub.is-open > .ent-sub {
  opacity:1; visibility:visible; transform:translateY(0); }
.ent-sub li a { display:block; padding:8px 12px; border-radius:8px; font-size:.85rem; color:var(--enerton-ink); white-space:nowrap; }
.ent-sub li a:hover { background:var(--enerton-bg-soft); color:var(--enerton-blue); }
.ent-sub__label { padding:11px 12px 4px; margin-top:4px; border-top:1px solid var(--enerton-border); font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.09em; color:var(--enerton-muted); }
.ent-sub__all { margin-top:4px; border-top:1px solid var(--enerton-border); padding-top:4px; }
.ent-sub__all a { font-weight:600; color:var(--enerton-blue); }

.ent-header__cta { margin-left: 10px; flex-shrink:0; white-space:nowrap; padding:11px 18px; font-size:.85rem; }
.ent-menu__cta { display:none; }
/* Même traitement que .ent-sub-toggle : sans ces resets, le style <button> du thème
   parent repasse devant au survol/focus et colle un carré rouge sur le burger. */
.ent-burger { display:none; -webkit-appearance:none; appearance:none; background:transparent !important; border:0;
  box-shadow:none !important; -webkit-tap-highlight-color:transparent;
  font-size:1.6rem; color:var(--enerton-navy); cursor:pointer; margin-left:auto; }
.ent-burger:hover, .ent-burger:focus, .ent-burger:active { background:transparent !important; box-shadow:none !important; color:var(--enerton-blue); }
.ent-burger:focus-visible { outline:2px solid var(--enerton-blue); outline-offset:2px; border-radius:6px; }

/* ---------- Bandeau d'accent (haut de page) ---------- */
.ent-topbar { height:4px; width:100%;
  background: linear-gradient(90deg, var(--enerton-navy) 0%, var(--enerton-blue) 70%, var(--enerton-red) 70%, var(--enerton-red) 100%); }

/* Offset d'ancrage sous le header sticky (72px) */
.ent-section[id], .ent-subtitle[id] { scroll-margin-top: 88px; }
html { scroll-behavior: smooth; }

/* ---------- Hero : fond animé « air fluide » ---------- */
.ent-hero { position:relative; overflow:hidden; color:#fff; padding: 104px 0 88px;
  background: linear-gradient(160deg, #1a2351 0%, #111a3e 100%); }

/* Couche « lampe à lave » : blobs lumineux qui flottent, se déforment et fusionnent (style Cloudflare) */
.ent-hero__fx { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.ent-blob { position:absolute; filter: blur(55px); mix-blend-mode:screen; will-change: transform, border-radius; }
.ent-blob--1 { width:42vw; height:42vw; left:24%; top:2%;
  background: radial-gradient(circle, rgba(74,156,255,.95), rgba(74,156,255,0) 64%);
  animation: lava-1 9s ease-in-out infinite; }
.ent-blob--2 { width:36vw; height:36vw; left:54%; top:-14%;
  background: radial-gradient(circle, rgba(42,112,232,.85), rgba(42,112,232,0) 66%);
  animation: lava-2 12s ease-in-out infinite; }
.ent-blob--3 { width:28vw; height:28vw; left:9%; top:42%;
  background: radial-gradient(circle, rgba(96,176,255,.8), rgba(96,176,255,0) 64%);
  animation: lava-3 8s ease-in-out infinite; }
.ent-blob--4 { width:32vw; height:32vw; left:66%; top:34%;
  background: radial-gradient(circle, rgba(33,96,210,.85), rgba(33,96,210,0) 66%);
  animation: lava-4 11s ease-in-out infinite; }

/* Texture grille pointillée qui dérive lentement en diagonale */
.ent-hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1.4px);
  background-size: 24px 24px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 92%);
  animation: ent-dots-pan 26s linear infinite; }

.ent-hero > .ent-container { position:relative; z-index:2; }

@keyframes lava-1 {
  0%,100% { transform: translate(0,0) scale(1);        border-radius:50% 50% 50% 50%; }
  30%     { transform: translate(8%,-26%) scale(1.2);   border-radius:60% 40% 55% 45%; }
  60%     { transform: translate(-10%,18%) scale(.85);  border-radius:42% 58% 48% 52%; }
}
@keyframes lava-2 {
  0%,100% { transform: translate(0,0) scale(1.1);       border-radius:55% 45% 48% 52%; }
  50%     { transform: translate(-14%,30%) scale(.8);    border-radius:45% 55% 60% 40%; }
}
@keyframes lava-3 {
  0%,100% { transform: translate(0,0) scale(.9);        border-radius:48% 52% 55% 45%; }
  40%     { transform: translate(16%,-22%) scale(1.25);  border-radius:58% 42% 45% 55%; }
  75%     { transform: translate(6%,20%) scale(1.05);   border-radius:50% 50% 40% 60%; }
}
@keyframes lava-4 {
  0%,100% { transform: translate(0,0) scale(1);         border-radius:52% 48% 50% 50%; }
  50%     { transform: translate(-12%,-28%) scale(1.22); border-radius:42% 58% 55% 45%; }
}
@keyframes ent-dots-pan {
  from { background-position: 0 0; }
  to   { background-position: 96px 72px; }
}
@media (prefers-reduced-motion: reduce) {
  .ent-blob, .ent-hero::before { animation: none; }
  html { scroll-behavior: auto; }
}
.ent-hero .ent-eyebrow { display:inline-flex; align-items:center; gap:8px; }
.ent-hero .ent-eyebrow .ent-flag { font-size:1rem; line-height:1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); }
.ent-hero h1 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size: clamp(2.3rem, 5vw, 3.7rem); line-height:1.05; letter-spacing:-.025em; margin:0 0 20px; max-width:16ch; }
.ent-hero p { color: rgba(255,255,255,.82); font-size:1.1rem; line-height:1.6; max-width: 60ch; margin:0 0 28px; }
.ent-hero__actions { display:flex; flex-wrap:wrap; gap:14px; }
.ent-stats { display:flex; flex-wrap:wrap; gap:48px; margin-top:54px; padding-top:32px; border-top:1px solid rgba(255,255,255,.15); }
.ent-stat__num { font-family:'Space Grotesk',sans-serif; font-size:2rem; font-weight:700; }
.ent-stat__label { color: rgba(255,255,255,.62); font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; margin-top:4px; }

/* ---------- Grilles & cards ---------- */
.ent-grid { display:grid; gap:24px; }
.ent-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ent-grid--4 { grid-template-columns: repeat(4, 1fr); }
.ent-head { max-width:60ch; margin-bottom:40px; }

.ent-card { background:#fff; border:1px solid var(--enerton-border); border-radius:14px; padding:28px; box-shadow: var(--enerton-shadow-card); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ent-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px -16px rgba(26,35,81,.35); border-color: var(--enerton-accent); }
.ent-card h3 { font-family:'Space Grotesk',sans-serif; font-size:1.2rem; margin:0 0 10px; color:var(--enerton-ink); }
.ent-card p { color:var(--enerton-muted); font-size:.95rem; line-height:1.55; margin:0; }
.ent-card__icon { width:46px; height:46px; border-radius:10px; background:#dbe9f8; display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:1.3rem; color:var(--enerton-blue); }
.ent-card__icon svg { width:24px; height:24px; }

/* Marché cards (illustrées) */
.ent-market { display:block; background:#fff; border:1px solid var(--enerton-border); border-radius:14px;
  overflow:hidden; box-shadow:var(--enerton-shadow-card); transition:transform .18s ease, box-shadow .18s ease; }
.ent-market:hover { transform:translateY(-3px); box-shadow:0 14px 34px -16px rgba(26,35,81,.35); }
.ent-market__img { position:relative; aspect-ratio:16/10; overflow:hidden; }
.ent-market__img img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.ent-market:hover .ent-market__img img { transform:scale(1.06); }
.ent-market__img::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,21,58,0) 45%, rgba(16,21,58,.5)); }
.ent-market .ent-badge { position:absolute; z-index:1; top:14px; left:14px; background:var(--enerton-blue); color:#fff; font-size:.7rem; font-weight:600; padding:4px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:.04em; }
.ent-market__body { padding:18px 20px 22px; }
.ent-market__body h3 { font-family:'Space Grotesk',sans-serif; font-size:1.15rem; margin:0 0 6px; color:var(--enerton-ink); }
.ent-market__body p { color:var(--enerton-muted); font-size:.9rem; line-height:1.5; margin:0; }

/* Produit cards */
.ent-prod { background:#fff; border:1px solid var(--enerton-border); border-radius:14px; overflow:hidden; box-shadow:var(--enerton-shadow-card); display:flex; flex-direction:column;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ent-prod:hover { transform:translateY(-3px); box-shadow:0 14px 34px -16px rgba(26,35,81,.35); border-color:var(--enerton-accent); }
.ent-prod__img { overflow:hidden; }
.ent-prod__img img, .ent-prod img { aspect-ratio: 16/10; object-fit:cover; width:100%; display:block; transition:transform .45s ease; }
.ent-prod:hover .ent-prod__img img { transform:scale(1.06); }
.ent-prod__body { padding:22px; display:flex; flex-direction:column; flex:1; }
.ent-prod__cee { display:inline-block; align-self:flex-start; font-size:.72rem; font-weight:600; color:var(--enerton-blue); background:#dbe9f8; padding:3px 9px; border-radius:6px; margin-bottom:10px; }
.ent-prod h3 { font-family:'Space Grotesk',sans-serif; font-size:1.1rem; margin:0 0 8px; color:var(--enerton-ink); }
.ent-prod p { color:var(--enerton-muted); font-size:.9rem; line-height:1.5; margin:0; }
.ent-prod__more { margin-top:auto; padding-top:14px; font-size:.85rem; font-weight:600; color:var(--enerton-blue);
  opacity:0; transform:translateY(4px); transition:opacity .2s ease, transform .2s ease; }
.ent-prod:hover .ent-prod__more { opacity:1; transform:none; }

/* Bandeau CEE — panneau visuel */
.ent-cee-actions { display:flex; align-items:center; gap:22px; margin-top:24px; flex-wrap:wrap; }
.ent-cee-link { color:var(--enerton-accent); font-weight:600; font-size:.9rem; text-decoration:none; white-space:nowrap; }
.ent-cee-link:hover { text-decoration:underline; }
.ent-cee-panel { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:28px; width:100%; }
.ent-cee-panel__ico { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:12px; background:rgba(211,231,255,.16); color:var(--enerton-accent); margin-bottom:16px; }
.ent-cee-panel__ico svg { width:28px; height:28px; }
.ent-cee-panel__big { font-family:'Space Grotesk',sans-serif; font-size:1.2rem; color:#fff; margin:0 0 16px; }
.ent-cee-panel__list { list-style:none; margin:0; padding:0; }
.ent-cee-panel__list li { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.85); font-size:.92rem; margin-bottom:11px; }
.ent-cee-panel__list li:last-child { margin-bottom:0; }
.ent-cee-panel__list svg { width:18px; height:18px; color:var(--enerton-accent); flex:none; }

/* Chiffres navy */
.ent-figures { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:38px; }
.ent-figures .ent-stat { padding:0 28px; border-left:1px solid rgba(255,255,255,.14); }
.ent-figures .ent-stat:first-child { border-left:0; padding-left:0; }
.ent-figures .ent-stat__num { font-size:2.4rem; }
.ent-stat__ico { color:var(--enerton-accent); margin-bottom:14px; }
.ent-stat__ico svg { width:30px; height:30px; }

/* Bandeau CEE / split */
.ent-split { display:grid; grid-template-columns: 1.3fr .7fr; gap:48px; align-items:center; }
.ent-cta-banner { background:
    radial-gradient(700px 300px at 85% 120%, rgba(33,113,204,.5), transparent 60%),
    linear-gradient(135deg, #1a2351, #0e1740); color:#fff; border-radius:18px; padding:56px; }
.ent-cta-banner h2 { color:#fff; }

/* Actus */
.ent-actu { display:block; background:#fff; border:1px solid var(--enerton-border); border-radius:14px; overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease; }
.ent-actu:hover { transform: translateY(-3px); box-shadow: 0 14px 34px -16px rgba(26,35,81,.35); }
.ent-actu__img { aspect-ratio:16/9; background:linear-gradient(135deg,#1a2351,#2171cc);
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.9); }
.ent-actu__img svg { width:40px; height:40px; }
.ent-actu__img--cee { background:linear-gradient(135deg,#0e4d3a,#2171cc); }
.ent-actu__img--eco { background:linear-gradient(135deg,#16215a,#4096ff); }
.ent-actu__img--prod { background:linear-gradient(135deg,#1a2351,#3aa0ff); }
.ent-actu__body { padding:22px; }
.ent-actu__meta { display:flex; align-items:center; gap:10px; }
.ent-actu__tag { font-size:.72rem; font-weight:600; color:var(--enerton-blue); text-transform:uppercase; letter-spacing:.05em; }
.ent-actu__date { font-size:.72rem; color:var(--enerton-muted); }
.ent-actu h3 { font-family:'Space Grotesk',sans-serif; font-size:1.05rem; line-height:1.3; margin:8px 0 0; color:var(--enerton-ink); }
.ent-actu__excerpt { color:var(--enerton-muted); font-size:.9rem; line-height:1.5; margin:10px 0 0; }
.ent-actu__more { display:inline-block; margin-top:14px; font-size:.85rem; font-weight:600; color:var(--enerton-blue); }

/* Frise process (SAV) */
.ent-steps--3 { grid-template-columns:repeat(3,1fr); }
.ent-step__ico { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px;
  border-radius:10px; background:#dbe9f8; color:var(--enerton-blue); margin-bottom:14px; }
.ent-step__ico svg { width:24px; height:24px; }

/* ---------- Produits (specs) ---------- */
.ent-points { list-style:none; margin:18px 0 0; padding:0; }
.ent-points li { position:relative; padding-left:24px; margin-bottom:9px; color:var(--enerton-ink); font-size:.95rem; }
.ent-points li::before { content:"✓"; position:absolute; left:0; color:var(--enerton-blue); font-weight:700; }
.ent-prod-img { border-radius:14px; aspect-ratio:4/3; object-fit:cover; width:100%; box-shadow:var(--enerton-shadow-card); }
.ent-subtitle { font-family:'Space Grotesk',sans-serif; font-size:1.15rem; color:var(--enerton-navy); margin:40px 0 16px; }
.ent-note { color:var(--enerton-muted); font-size:.9rem; margin-top:16px; font-style:italic; }
.ent-table-wrap { overflow-x:auto; margin-top:28px; border:1px solid var(--enerton-border); border-radius:12px; }
.ent-table { width:100%; border-collapse:collapse; font-size:.9rem; min-width:560px; }
.ent-table th, .ent-table td { padding:11px 16px; text-align:left; border-bottom:1px solid var(--enerton-border); }
.ent-table thead th { background:var(--enerton-navy); color:#fff; font-weight:600; white-space:nowrap; }
.ent-table tbody tr:nth-child(even) { background:var(--enerton-bg-soft); }
.ent-table tbody td:first-child { font-weight:600; color:var(--enerton-ink); }
.ent-table tbody tr:last-child td { border-bottom:0; }

/* ---------- Étapes numérotées ---------- */
.ent-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.ent-step { background:#fff; border:1px solid var(--enerton-border); border-radius:14px; padding:26px; }
.ent-step__n { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; background:var(--enerton-navy); color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:700; margin-bottom:14px; }
.ent-step h3 { font-family:'Space Grotesk',sans-serif; font-size:1.05rem; margin:0 0 8px; color:var(--enerton-ink); }
.ent-step p { color:var(--enerton-muted); font-size:.92rem; line-height:1.5; margin:0; }

/* ---------- Formulaire (CF7) ---------- */
.ent-form label { display:block; font-weight:600; font-size:.9rem; color:var(--enerton-ink); margin-bottom:16px; }
.ent-form input[type=text], .ent-form input[type=email], .ent-form input[type=tel], .ent-form select, .ent-form textarea {
  width:100%; margin-top:6px; padding:11px 13px; border:1px solid var(--enerton-border); border-radius:8px;
  font:inherit; font-weight:400; color:var(--enerton-ink); background:#fff; }
.ent-form textarea { min-height:120px; resize:vertical; }
.ent-form input:focus, .ent-form select:focus, .ent-form textarea:focus { outline:none; border-color:var(--enerton-blue); }
.ent-form input[type=submit] { background:var(--enerton-navy); color:#fff; border:0; border-radius:var(--enerton-radius);
  padding:13px 24px; font-weight:600; cursor:pointer; width:auto; margin-top:4px; transition:background .18s; }
.ent-form input[type=submit]:hover { background:#0e1740; }
.wpcf7-not-valid-tip { color:var(--enerton-red); font-size:.82rem; }
.wpcf7-response-output { border-radius:8px; margin:14px 0 0 !important; padding:12px 14px !important; }

/* ---------- Login partenaire ---------- */
#loginform label { display:block; text-align:left; font-weight:600; font-size:.9rem; margin-bottom:12px; }
#loginform input[type=text], #loginform input[type=password] { width:100%; margin-top:6px; padding:11px 13px; border:1px solid var(--enerton-border); border-radius:8px; font:inherit; }
#loginform input[type=submit] { background:var(--enerton-navy); color:#fff; border:0; border-radius:var(--enerton-radius); padding:12px 22px; font-weight:600; cursor:pointer; margin-top:8px; }
#loginform .login-remember { font-weight:400; }

/* ---------- Contenu d'article / légal ---------- */
.ent-article { color:var(--enerton-ink); line-height:1.7; }
.ent-article h2 { font-family:'Space Grotesk',sans-serif; margin-top:32px; }
.ent-article h3 { font-family:'Space Grotesk',sans-serif; margin-top:24px; }
.ent-article p { margin:0 0 16px; }
.ent-article ul { margin:0 0 16px; padding-left:22px; }
.ent-article li { margin-bottom:8px; }

/* ---------- Footer ---------- */
.ent-footer { background: var(--enerton-navy); color: rgba(255,255,255,.72); padding:64px 0 28px; }
.ent-footer__grid { display:grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap:40px; }
.ent-footer__contact { margin-top:16px; }
.ent-footer__contact a { font-weight:500; color:#fff; }
.ent-footer h4 { color:#fff; font-family:'Space Grotesk',sans-serif; font-size:.95rem; margin:0 0 14px; }
.ent-footer__brand p { color: rgba(255,255,255,.62); font-size:.92rem; line-height:1.6; max-width:42ch; }
.ent-footer ul { list-style:none; margin:0; padding:0; }
.ent-footer li { margin-bottom:9px; }
.ent-footer a { color: rgba(255,255,255,.72); font-size:.92rem; }
.ent-footer a:hover { color:#fff; }
.ent-footer__logo { display:block; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.5rem; letter-spacing:-.02em; color:#fff; margin-bottom:16px; }
.ent-footer__bottom { display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); font-size:.84rem; }
.ent-footer__bottom a { margin-left:16px; }

/* ---------- Micro-interactions : reveal au scroll ---------- */
[data-reveal] { opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
[data-reveal].is-in { opacity:1; transform:none; }
[data-reveal="2"] { transition-delay:.08s; }
[data-reveal="3"] { transition-delay:.16s; }
[data-reveal="4"] { transition-delay:.24s; }
.ent-icon { display:inline-block; vertical-align:middle; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity:1; transform:none; transition:none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .ent-grid--3, .ent-grid--4, .ent-figures, .ent-steps { grid-template-columns: repeat(2,1fr); }
  .ent-figures { gap:28px 0; }
  .ent-figures .ent-stat, .ent-figures .ent-stat:first-child { border-left:0; padding:0; }
  .ent-split { grid-template-columns:1fr; }
  .ent-footer__grid { grid-template-columns:1fr 1fr; }
  .ent-nav { display:none; }
  .ent-burger { display:block; margin-left:auto; }
  .ent-nav.is-open { display:block; position:absolute; top:calc(72px + 4px); left:0; right:0; background:#fff;
    border-bottom:1px solid var(--enerton-border); box-shadow:var(--enerton-shadow-card);
    padding:10px 24px 18px; max-height:calc(100vh - 76px); overflow-y:auto; }
  .ent-nav.is-open .ent-menu { flex-direction:column; align-items:stretch; gap:0; }
  .ent-nav.is-open .ent-menu > li { position:static; border-bottom:1px solid var(--enerton-border); }
  .ent-nav.is-open .ent-menu > li:last-child { border-bottom:0; }
  .ent-nav.is-open .ent-menu > li.ent-has-sub { flex-wrap:wrap; justify-content:space-between; }
  .ent-nav.is-open .ent-menu > li > a:not(.ent-btn) { flex:1; padding:14px 4px; font-size:.98rem; }
  .ent-nav.is-open .ent-sub-toggle { padding:14px 8px; margin:0; }
  .ent-nav.is-open .ent-caret { font-size:.9rem; }
  /* Sous-menu = accordéon (statique, masqué jusqu'à .is-open) */
  .ent-nav.is-open .ent-sub { position:static; opacity:1; visibility:visible; transform:none;
    display:none; flex-basis:100%; min-width:0; border:0; border-radius:0; box-shadow:none; padding:0 0 10px 12px; }
  .ent-nav.is-open .ent-has-sub.is-open > .ent-sub { display:block; }
  .ent-nav.is-open .ent-has-sub.is-open .ent-caret { transform:rotate(180deg); }
  .ent-nav.is-open .ent-sub li a { padding:10px 8px; }
  .ent-nav.is-open .ent-sub__label { border-top:0; padding-top:8px; }
  .ent-nav.is-open .ent-sub__all { border-top:0; }
  /* CTA repris en plein format dans le panneau mobile */
  .ent-header__cta { display:none; }
  .ent-nav.is-open .ent-menu__cta { display:block; border-bottom:0; padding:14px 0 4px; }
  .ent-nav.is-open .ent-menu__cta a { display:block; text-align:center; }
}
@media (max-width: 600px) {
  .ent-grid--3, .ent-grid--4, .ent-figures, .ent-footer__grid, .ent-steps { grid-template-columns:1fr; }
  .ent-stats { gap:28px; }
  .ent-cta-banner { padding:36px 24px; }
}
