/* ============================================================
   MAFATEC — Composants pages intérieures (luxe éditorial)
   ============================================================ */

/* ── NAV GLOBALE (claire, fil d'Ariane, façon Apple) ── */
.gnav{
  position:fixed;top:0;left:0;right:0;z-index:300;height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 2.2rem;gap:1.5rem;background:rgba(250,250,250,.8);backdrop-filter:saturate(160%) blur(22px);
  -webkit-backdrop-filter:saturate(160%) blur(22px);border-bottom:1px solid rgba(0,0,0,.06);
  transition:background .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.gnav.solid{
  background:rgba(250,250,250,.93);
  border-bottom-color:#e6e6e6;
  box-shadow:0 1px 0 #ececec,0 14px 32px rgba(15,18,30,.05);
}
.gnav-logo{display:flex;align-items:center;flex-shrink:0}
.gnav-logo img{height:24px;width:auto}

/* fil d'Ariane */
.gnav-crumbs{position:absolute;left:50%;top:0;height:100%;transform:translateX(-50%);display:flex;align-items:center;gap:.55rem;white-space:nowrap;max-width:58%;overflow:hidden}
.crumb{font-size:.74rem;font-weight:500;letter-spacing:.04em;color:var(--muted);text-decoration:none;white-space:nowrap;transition:color .3s var(--ease)}
a.crumb:hover{color:var(--text)}
.crumb-sep{color:var(--line-warm);font-size:.85rem}
.crumb-cur{color:var(--text);font-weight:600;font-family:var(--sans);font-size:.74rem;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30vw}
:root[data-head="sans"] .crumb-cur{font-family:var(--sans);font-size:.74rem;font-weight:700}
.crumb-group{position:relative;display:flex;align-items:center;height:74px}
.crumb-group::after{content:'';position:absolute;top:100%;left:-12px;right:-12px;height:14px}
.crumb-parent{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text);background:none;cursor:pointer;white-space:nowrap}
.crumb-parent .caret{width:9px;height:9px;opacity:.5;transition:transform .35s var(--ease-lux)}
.crumb-group:hover .crumb-parent{color:var(--champagne-deep)}
.crumb-group:hover .crumb-parent .caret{transform:rotate(180deg)}
.gnav-drop{
  position:absolute;top:calc(100% + 2px);left:-12px;min-width:296px;
  background:rgba(255,253,248,.98);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border:1px solid var(--line-warm);border-radius:8px;padding:.5rem;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .35s var(--ease-lux),transform .35s var(--ease-lux),visibility .35s;
  box-shadow:0 26px 60px rgba(15,18,30,.14);
}
.crumb-group:hover .gnav-drop{opacity:1;visibility:visible;transform:translateY(0)}
.gnav-drop a{display:block;padding:.65rem .85rem;border-radius:5px;transition:background .25s var(--ease)}
.gnav-drop a:hover{background:rgba(174,182,196,.12)}
.gnav-drop a.cur{background:rgba(174,182,196,.1)}
.gnav-drop a .t{display:block;font-size:.84rem;font-weight:600;color:var(--text);font-family:var(--sans)}
.gnav-drop a .d{display:block;font-size:.71rem;color:var(--muted);margin-top:.12rem;line-height:1.4}

.gnav-right{display:flex;align-items:center;gap:1.4rem;flex-shrink:0}
.gnav-rlink{font-size:.74rem;font-weight:500;letter-spacing:.04em;color:var(--text-soft);transition:color .3s var(--ease);white-space:nowrap;position:relative}
.gnav-rlink::after{content:'';position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--champagne);transition:width .4s var(--ease-lux)}
.gnav-rlink:hover,.gnav-rlink.cur{color:var(--text)}
.gnav-rlink:hover::after,.gnav-rlink.cur::after{width:100%}
.gnav-phone{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.74rem;font-weight:600;letter-spacing:.03em;color:var(--text);
  padding:.55rem 1rem;border:1px solid var(--line-warm);border-radius:2px;
  transition:border-color .35s var(--ease),background .35s var(--ease);white-space:nowrap;
}
.gnav-phone svg{width:13px;height:13px;color:var(--red-500)}
.gnav-phone:hover{border-color:var(--champagne);background:#fff}
.gnav-burger{display:none;width:40px;height:40px;align-items:center;justify-content:center;color:var(--text)}
.gnav-burger svg{width:24px;height:24px}

/* mobile menu overlay (clair) */
.gmenu{
  position:fixed;inset:0;z-index:290;background:var(--paper);
  padding:6rem 2rem 2rem;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .4s var(--ease-lux),transform .4s var(--ease-lux),visibility .4s;
}
.gmenu.open{opacity:1;visibility:visible;transform:none}
.gmenu-grp{border-top:1px solid var(--line-warm);padding:1.3rem 0}
.gmenu-grp h5{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--champagne-deep);margin-bottom:1rem;font-weight:600}
.gmenu-grp a{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--text);padding:.4rem 0}
:root[data-head="sans"] .gmenu-grp a{font-family:var(--sans);font-weight:600;font-size:1.2rem}
.gmenu-grp a:active{color:var(--champagne-deep)}

/* ── HERO sombre ── */
.xhero{
  position:relative;overflow:hidden;background:var(--ink-900);color:var(--on-dark);
  padding:11rem 0 6rem;
}
.xhero-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 55% 70% at 86% 30%,rgba(201,59,24,.16) 0%,transparent 62%),
    radial-gradient(ellipse 60% 60% at 12% 90%,rgba(42,46,114,.5) 0%,transparent 60%);
}
.xhero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:4.5rem;align-items:center}
.xhero .eyebrow{color:var(--champagne-soft);margin-bottom:1.8rem}
.xhero h1{
  font-size:clamp(2.4rem,4.2vw,3.9rem);color:var(--on-dark);
  margin-bottom:2.1rem;letter-spacing:-.012em;line-height:1.06;
}
.xhero h1 em{font-style:italic;color:var(--champagne-soft)}
:root[data-head="sans"] .xhero h1 em{font-style:normal}
.xhero-lead{font-size:1.1rem;line-height:1.78;color:var(--on-dark-soft);max-width:560px;margin-bottom:2.6rem}
.xhero-ctas{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.xhero-visual{position:relative}
.xhero-visual image-slot{width:100%;height:440px;display:block;
  box-shadow:0 40px 90px rgba(7,9,18,.55);border:1px solid rgba(243,239,230,.1)}
.xhero-visual .visual-cap{
  position:absolute;left:-1px;bottom:-1px;z-index:3;
  background:var(--ink-950);border:1px solid rgba(174,182,196,.3);
  padding:.7rem 1.1rem;display:flex;align-items:center;gap:.6rem;
}
.xhero-visual .visual-cap .dot{width:6px;height:6px;border-radius:50%;background:var(--red-500)}
.xhero-visual .visual-cap span{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-soft);font-weight:600}

/* ── STATS ── */
.xstats{background:var(--ink-950);border-top:1px solid var(--hair-d)}
.xstats-in{display:grid;grid-template-columns:repeat(4,1fr)}
.xstat{padding:3rem 1.5rem;text-align:center;position:relative}
.xstat:not(:last-child)::after{content:'';position:absolute;right:0;top:26%;bottom:26%;width:1px;background:var(--hair-d-soft)}
.xstat .v{font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--on-dark);letter-spacing:-.01em}
:root[data-head="sans"] .xstat .v{font-family:var(--sans);font-weight:800;letter-spacing:-.04em}
.xstat .v em{font-style:normal;color:var(--champagne-soft)}
.xstat .l{margin-top:.7rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-mute)}

/* ── Section heading ── */
.sec-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--champagne-deep);margin-bottom:1.4rem}
.sec-eyebrow .mark{width:26px;height:1px;background:var(--champagne)}
.sec-h{font-size:clamp(2rem,3.6vw,3rem);color:var(--text);letter-spacing:-.015em;line-height:1.05}
.sec-h em{font-style:italic;color:var(--red-500)}
:root[data-head="sans"] .sec-h em{font-style:normal}
.sec-lead{font-size:1.05rem;line-height:1.78;color:var(--text-soft) !important;max-width:620px !important;margin-top:1rem; margin-bottom: 1rem;}

/* ── 2-col editorial ── */
.edito{display:grid;grid-template-columns:.85fr 1.15fr;gap:5rem;align-items:start}
.edito-body p{color:var(--text-soft);font-size:1.02rem;line-height:1.85}
.edito-body p+p{margin-top:1.3rem}
.promise{margin-top:2.2rem;display:flex;flex-direction:column;gap:.95rem}
.promise li{display:flex;align-items:flex-start;gap:.85rem;font-size:.98rem;color:var(--text);line-height:1.5}
.promise li svg{width:18px;height:18px;flex-shrink:0;margin-top:.15rem;color:var(--red-500)}

/* ── Pillar cards ── */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line-warm)}
.pillar{
  padding:2.8rem 2.2rem 3rem;position:relative;
  border-right:1px solid var(--line-warm);
  transition:background .5s var(--ease);
}
.pillar:last-child{border-right:none}
.pillar::before{content:'';position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--red-500);transition:width .6s var(--ease-lux)}
.pillar:hover{background:var(--card)}
.pillar:hover::before{width:100%}
.pillar .pidx{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--champagne-deep)}
.pillar .picon{width:54px;height:54px;display:flex;align-items:center;justify-content:center;color:var(--navy-800);margin:1.6rem 0 1.3rem}
.pillar .picon svg{width:38px;height:38px;stroke-width:1.25}
.pillar h3{font-size:1.5rem;color:var(--text);margin-bottom:.8rem}
.pillar p{font-size:.95rem;line-height:1.75;color:var(--text-soft)}

/* ── Generic cards grid ── */
.cards-4{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
.lcard{
  background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-md) !important;
  padding:2rem 1.9rem !important;position:relative !important;overflow:hidden !important;
  transition:transform .5s var(--ease-lux),box-shadow .5s var(--ease-lux),border-color .4s var(--ease) !important;
}
.lcard::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--champagne);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease-lux)}
.lcard:hover{transform:translateY(-4px);border-color:var(--champagne)}
.lcard:hover::after{transform:scaleY(1)}
.lcard .chip{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne-deep);margin-bottom:.9rem}
.lcard .lc-ico{width:46px;height:46px;margin-bottom:1rem;color:var(--champagne-deep);display:flex;align-items:center;justify-content:flex-start;transition:transform .5s var(--ease-lux)}
.lcard .lc-ico svg{width:42px;height:42px}
.lcard:hover .lc-ico{transform:translateY(-2px) scale(1.05)}
.lcard h4{font-size:1.3rem;color:var(--text);margin-bottom:.6rem}
.lcard p{font-size:.92rem;line-height:1.72;color:var(--text-soft)}

/* ── Why (numbered editorial) ── */
.why{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line-warm)}
.why-item{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;padding:2.4rem 2rem;border-bottom:1px solid var(--line-warm)}
.why-item:nth-child(odd){border-right:1px solid var(--line-warm)}
.why-num{font-family:var(--serif);font-style:italic;font-weight:500;font-size:2.4rem;line-height:1;color:var(--champagne);min-width:2.2rem}
:root[data-head="sans"] .why-num{font-family:var(--sans);font-style:normal;font-weight:800}
.why-item h4{font-size:1.2rem;color:var(--text);margin-bottom:.5rem}
.why-item p{font-size:.93rem;line-height:1.72;color:var(--text-soft)}

/* ── Values ── */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}
.value{position:relative;padding-top:2.4rem}
.value::before{content:'';position:absolute;top:0;left:0;width:48px;height:2px;background:var(--red-500)}
.value .vn{font-family:var(--serif);font-style:italic;font-weight:500;font-size:3.4rem;line-height:1;color:var(--champagne-deep);margin-bottom:.8rem;display:block}
:root[data-head="sans"] .value .vn{font-family:var(--sans);font-style:normal;font-weight:800;letter-spacing:-.04em}
.value h4{font-size:1.35rem;color:var(--text);margin-bottom:.7rem}
.value p{font-size:.95rem;line-height:1.75;color:var(--text-soft)}

/* ── References ── */
.refs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3.5rem;padding:3rem 0}
.ref{font-family:var(--sans);font-weight:700;font-size:1.15rem;letter-spacing:.02em;color:var(--gray-400,#9aa0b5);text-align:center;line-height:1.25;transition:color .4s var(--ease);opacity:.65}
.ref:hover{color:var(--navy-800);opacity:1}
.ref small{display:block;font-size:.6em;font-weight:500;letter-spacing:.04em;opacity:.7;margin-top:.15rem}
/* logos partenaires (plaques blanches sur fond sombre) */
.reflogos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.6rem;padding:3rem 0}
.reflogo{background:#fff;border-radius:14px;padding:.7rem 1rem;width:226px;height:120px;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 40px rgba(7,9,18,.3);transition:transform .5s var(--ease-lux)}
.reflogo:hover{transform:translateY(-5px)}
.reflogo img{width:100%;height:100%;object-fit:contain}
@media(max-width:600px){.reflogos{gap:1rem}.reflogo{width:160px;height:96px;padding:.6rem .8rem}}

/* ── Bands ── */
.band-paper2{background:var(--paper-2)}
.band-ink{background:var(--ink-900) !important;color:var(--on-dark) !important;position:relative !important;overflow:hidden}
.band-ink .sec-eyebrow{color:var(--champagne-soft)}
.band-ink .sec-h{color:var(--on-dark)}
.band-ink .sec-lead{color:var(--on-dark-soft)}

/* ── CTA final ── */
.xcta{position:relative;overflow:hidden;background:var(--ink-900);color:var(--on-dark);padding:6rem 0}
.xcta-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 90% at 50% 120%,rgba(201,59,24,.2) 0%,transparent 60%)}
.xcta-in{position:relative;z-index:2;text-align:center;max-width:780px;margin:0 auto}
.xcta h2{font-size:clamp(2.2rem,4vw,3.4rem);color:var(--on-dark);margin-bottom:1.2rem;letter-spacing:-.02em}
.xcta h2 em{font-style:italic;color:var(--champagne-soft)}
:root[data-head="sans"] .xcta h2 em{font-style:normal}
.xcta p{font-size:1.05rem;line-height:1.7;color:var(--on-dark-soft);margin-bottom:2.4rem}
.xcta-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ── Footer ── */
.lfoot{background:var(--ink-950);color:var(--on-dark);padding:4.5rem 0 2.2rem}
.lfoot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid var(--hair-d)}
.lfoot-brand img{height:26px;margin-bottom:1.3rem}
.lfoot-brand p{font-size:.86rem;line-height:1.7;color:var(--on-dark-mute);max-width:280px}
.lfoot-col h5{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne-soft);margin-bottom:1.2rem;font-weight:600}
.lfoot-col a,.lfoot-col p{display:block;font-size:.85rem;color:var(--on-dark-soft);margin-bottom:.7rem;transition:color .3s var(--ease)}
.lfoot-col a:hover{color:var(--champagne)}
.lfoot-bot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.8rem;flex-wrap:wrap}
.lfoot-bot .copy{font-size:.72rem;color:var(--on-dark-mute)}
.lfoot-bot .certs{display:flex;gap:1rem;font-size:.7rem;letter-spacing:.06em;color:var(--champagne-soft);font-weight:600}
.lfoot-bot .certs span{position:relative}
.lfoot-bot .certs span:not(:last-child)::after{content:'·';position:absolute;right:-.62rem;color:var(--on-dark-mute)}

/* ── reveal on scroll handled by .reveal in luxe.css ── */

/* ── Responsive ── */
@media(max-width:980px){
  .xhero-in{grid-template-columns:1fr;gap:3rem}
  .xhero-visual{order:-1}
  .xhero-visual image-slot{height:300px}
  .edito{grid-template-columns:1fr;gap:2.2rem}
  .pillars{grid-template-columns:1fr;border-top:none}
  .pillar{border-right:none;border-top:1px solid var(--line-warm)}
  .cards-4{grid-template-columns:1fr}
  .why{grid-template-columns:1fr}
  .why-item:nth-child(odd){border-right:none}
  .values{grid-template-columns:1fr;gap:2.4rem}
  .xstats-in{grid-template-columns:1fr 1fr}
  .xstat:nth-child(2)::after{display:none}
  .lfoot-top{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .wrap{padding:0 .7rem}
  .section{padding:4.5rem 0}
  .xhero{padding:7.5rem 0 4rem}
  .xstats-in{grid-template-columns:1fr}
  .xstat:not(:last-child)::after{display:none}
  .xstat{border-bottom:1px solid var(--hair-d-soft)}
  .lfoot-top{grid-template-columns:1fr}
}

/* ============================================================
   COMPOSANTS DE SERVICE & PAGES
   ============================================================ */

/* badge espace dans le hero */
.xhero-badge{
  display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.4rem;
  padding:.4rem 1rem;border:1px solid var(--hair-d);border-radius:var(--r-full);
  font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-soft);
}
.xhero-badge .dot{width:5px;height:5px;border-radius:50%;background:var(--red-500)}
/* ── icône héro — médaillon luxe (sceau) + survol animé ── */
.xhero-icon{width:124px;height:124px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;
  border:1px solid rgba(174,182,196,.4);
  background:radial-gradient(circle at 50% 32%,rgba(174,182,196,.12),transparent 72%);
  color:var(--champagne);transition:transform .6s var(--ease-lux),border-color .5s var(--ease)}
.xhero-icon::before{content:'';position:absolute;inset:9px;border-radius:50%;border:1px solid rgba(174,182,196,.22)}
.xhero-icon::after{content:'';position:absolute;inset:-6px;border-radius:50%;pointer-events:none;background:radial-gradient(circle 3.5px at 50% 0,var(--accent-soft) 95%,transparent 100%)}
.xhero-icon .ring{position:absolute;inset:-1px;border-radius:50%;pointer-events:none;opacity:0;
  background:conic-gradient(from -90deg,var(--accent-soft) 0deg,transparent 72deg);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 2px));
  transition:opacity .6s var(--ease)}
.xhero-icon:hover{transform:translateY(-5px) scale(1.03);border-color:rgba(174,182,196,.62)}
.xhero:hover .xhero-icon{transform:translateY(-5px) scale(1.03);border-color:rgba(174,182,196,.62)}
.xhero:hover .xhero-icon .ring{opacity:.85}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes ringPulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.06);opacity:1}}
@keyframes iconPop{0%{transform:scale(1) rotate(0)}45%{transform:scale(1.12) rotate(-4deg)}100%{transform:scale(1) rotate(0)}}
@media (prefers-reduced-motion: no-preference){
  .xhero:hover .xhero-icon .ring{animation:orbit 4s linear infinite}
  .xhero:hover .xhero-icon::after{animation:orbit 4s linear infinite}
  .xhero:hover .xhero-icon::before{animation:ringPulse 2s var(--ease) infinite}
  .xhero:hover .xhero-icon svg{animation:iconPop .7s var(--ease-lux)}
}
.xhero-icon svg{width:58px;height:58px;stroke-width:1.05;position:relative}
.xhero-visual.center{display:flex;align-items:center;justify-content:center}

/* pictos valeurs / pourquoi (remplacent 01/02/03) */
.vn-ico{font-size:0!important;line-height:0;display:inline-flex;align-items:center;justify-content:center}
.value .vn.vn-ico svg,.why-num.vn-ico svg{width:46px;height:46px;display:block;color:var(--champagne-deep)}
.why-num.vn-ico{min-width:46px}

/* ── Section Simulateur (outil étude PV en ligne) ── */
.simu{position:relative;overflow:hidden;background:var(--ink-900);color:var(--on-dark)}
.simu .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:3.5rem;align-items:center;padding:clamp(3rem,6vw,5rem) 2.5rem}
@media(max-width:880px){.simu .wrap{grid-template-columns:1fr;gap:2.4rem}}
.simu-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 80% at 88% 20%,color-mix(in srgb,var(--accent) 26%,transparent) 0%,transparent 60%),radial-gradient(ellipse 60% 70% at 8% 95%,rgba(174,182,196,.16) 0%,transparent 60%)}
.simu-badge{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.4rem;padding:.42rem 1rem;border:1px solid var(--hair-d);border-radius:var(--r-full);font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-soft)}
.simu-badge .live{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 70%,transparent)}
@media (prefers-reduced-motion: no-preference){.simu-badge .live{animation:simuPulse 2s ease infinite}}
@keyframes simuPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.simu h2{font-size:clamp(1.8rem,3.2vw,2.7rem);color:var(--on-dark);letter-spacing:-.015em;line-height:1.16;margin-bottom:1.9rem}
.simu h2 em{font-style:italic;color:var(--champagne-soft)}
:root[data-head="sans"] .simu h2 em{font-style:normal}
.simu p{font-size:1.05rem;line-height:1.75;color:var(--on-dark-soft);max-width:560px;margin-bottom:1.8rem}
.simu-feats{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin-bottom:2.2rem}
.simu-feats span{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--on-dark)}
.simu-feats svg{width:16px;height:16px;color:var(--accent)}
.simu-cta{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--sans);font-weight:600;font-size:.92rem;letter-spacing:.02em;padding:1.05rem 2rem;border-radius:var(--r-sm);background:var(--accent);color:#fff;transition:transform .4s var(--ease-lux),box-shadow .4s var(--ease-lux)}
.simu-cta svg{width:17px;height:17px;transition:transform .4s var(--ease-lux)}
.simu-cta:hover{transform:translateY(-2px);box-shadow:0 16px 38px color-mix(in srgb,var(--accent) 38%,transparent)}
.simu-cta:hover svg{transform:translate(3px,-3px)}
.simu-url{display:block;margin-top:1rem;font-size:.78rem;letter-spacing:.04em;color:var(--on-dark-mute)}
/* panneau visuel : carte simulateur stylisée */
.simu-vis{position:relative;border:1px solid var(--hair-d);border-radius:var(--r-lg);background:rgba(243,239,230,.03);padding:1.8rem;box-shadow:0 30px 70px rgba(7,9,18,.45)}
.simu-vis .vrow{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem}
.simu-vis .vrow .t{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-mute)}
.simu-vis .dots{display:flex;gap:.4rem}
.simu-vis .dots i{width:8px;height:8px;border-radius:50%;background:var(--hair-d)}
.simu-vis .dots i:first-child{background:var(--accent)}
.simu-chart{display:flex;align-items:flex-end;gap:.55rem;height:120px;padding:0 .2rem 0;border-bottom:1px solid var(--hair-d-soft);margin-bottom:1rem}
.simu-chart b{flex:1;height:100%;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--champagne-soft),color-mix(in srgb,var(--accent) 55%,var(--champagne-deep)));transform-origin:bottom;transform:scaleY(.25);opacity:.9}
@media (prefers-reduced-motion: no-preference){
  .in .simu-chart b{animation:bar .9s var(--ease-lux) both}
}
@keyframes bar{from{transform:scaleY(.05)}}
.simu-figs{display:flex;justify-content:space-between;gap:1rem}
.simu-fig .n{font-family:var(--serif);font-weight:500;font-size:1.7rem;color:var(--champagne-soft);line-height:1}
:root[data-head="sans"] .simu-fig .n{font-family:var(--sans);font-weight:800}
.simu-fig .k{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-mute);margin-top:.35rem}

/* ── Animations sobres au survol : Nos valeurs & Pourquoi nous choisir ── */
@media (prefers-reduced-motion: no-preference){
  /* Valeurs : filet d'accent qui se déploie + icône qui se soulève */
  .value::before{transition:width .55s var(--ease-lux)}
  .value:hover::before{width:100%}
  .value .vn.vn-ico svg{transition:transform .55s var(--ease-lux)}
  .value:hover .vn.vn-ico svg{transform:translateY(-5px) scale(1.08)}
  .value h4{transition:color .4s var(--ease)}
  .value:hover h4{color:var(--accent)}

  /* Pourquoi : filet supérieur qui se trace + icône animée */
  .why-item{position:relative;transition:background .5s var(--ease)}
  .why-item::after{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-lux)}
  .why-item:hover::after{transform:scaleX(1)}
  .why-item:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 4%,transparent),transparent 60%)}
  .why-num.vn-ico svg{transition:transform .55s var(--ease-lux)}
  .why-item:hover .why-num.vn-ico svg{transform:translateY(-4px) scale(1.1) rotate(-4deg)}
  .why-item h4{transition:color .4s var(--ease)}
  .why-item:hover h4{color:var(--accent)}
}

/* bannière certifications */
.certbar{background:var(--ink-950);border-top:1px solid var(--hair-d);border-bottom:1px solid var(--hair-d)}
.certbar-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.9rem 2rem;padding:1.15rem 0}
.certbar .lbl{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark-mute)}
.certpills{display:flex;flex-wrap:wrap;gap:.8rem 1.7rem;justify-content:center}
.certpill{display:inline-flex;align-items:center;gap:.45rem;font-size:.75rem;font-weight:600;color:var(--champagne-soft)}
.certpill svg{width:13px;height:13px;color:var(--red-400)}

/* déclaration / statement */
.statement{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.7vw,2.15rem);line-height:1.42;
  color:var(--text);position:relative;padding-left:1.7rem;max-width:900px}
:root[data-head="sans"] .statement{font-family:var(--sans);font-weight:600;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.5;letter-spacing:-.01em}
.statement::before{content:'';position:absolute;left:0;top:.18em;bottom:.18em;width:2px;background:var(--champagne)}
.statement em{font-style:italic;color:var(--red-500)}
:root[data-head="sans"] .statement em{font-style:normal}
.band-ink .statement{color:var(--on-dark)}

/* prestations grid (réutilise lcard) */
.prest{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
.prest .lcard p{font-size:.94rem}
@media(max-width:860px){.prest{grid-template-columns:1fr}}

/* liste à puces élégante */
.bullets{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 2.5rem;margin-top:1.5rem}
.bullets li{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem;color:var(--text-soft);line-height:1.6}
.bullets li svg{width:16px;height:16px;flex-shrink:0;margin-top:.18rem;color:var(--red-500)}
@media(max-width:700px){.bullets{grid-template-columns:1fr}}

/* process / démarches */
.proc{display:flex;flex-direction:column}
.proc-step{display:grid;grid-template-columns:auto 1fr;gap:1.8rem;align-items:start;padding:1.9rem 0;border-bottom:1px solid var(--line-warm)}
.proc-step:last-child{border-bottom:none}
.proc-n{font-family:var(--serif);font-style:italic;font-weight:500;font-size:2.3rem;line-height:.9;color:var(--champagne);min-width:2.6rem}
:root[data-head="sans"] .proc-n{font-family:var(--sans);font-style:normal;font-weight:800}
.proc-step h4{font-size:1.2rem;color:var(--text);margin-bottom:.5rem}
.proc-step p{font-size:.94rem;line-height:1.72;color:var(--text-soft);max-width:760px}

/* FAQ accordéon */
.faq{display:flex;flex-direction:column;gap:.75rem;max-width:900px}
.faq-item{border:1px solid var(--line-warm);border-radius:var(--r-md);background:var(--card);overflow:hidden;transition:border-color .3s var(--ease)}
.faq-item.open{border-color:var(--champagne)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;
  padding:1.3rem 1.6rem;text-align:left;font-family:var(--sans);font-weight:600;font-size:1rem;color:var(--text);transition:color .3s}
.faq-item.open .faq-q{color:var(--red-500)}
.faq-q .ic{flex-shrink:0;width:20px;height:20px;position:relative}
.faq-q .ic::before,.faq-q .ic::after{content:'';position:absolute;background:currentColor;border-radius:2px;transition:transform .4s var(--ease-lux)}
.faq-q .ic::before{top:9px;left:2px;right:2px;height:2px}
.faq-q .ic::after{left:9px;top:2px;bottom:2px;width:2px}
.faq-item.open .faq-q .ic::after{transform:scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.faq-a-in{padding:0 1.6rem 1.45rem;font-size:.94rem;line-height:1.75;color:var(--text-soft)}

/* cartes d'accès (index espaces) */
.access{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.access-card{position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-lg);padding:2.6rem 2.3rem;
  transition:transform .55s var(--ease-lux),box-shadow .55s var(--ease-lux),border-color .4s var(--ease)}
.access-card::before{content:'';position:absolute;top:0;left:0;width:0;height:3px;background:var(--red-500);transition:width .55s var(--ease-lux)}
.access-card:hover{transform:translateY(-5px);border-color:var(--champagne)}
.access-card:hover::before{width:100%}
.access-ic{width:52px;height:52px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  background:var(--paper-2);color:var(--navy-800);margin-bottom:1.5rem}
.access-ic svg{width:28px;height:28px;stroke-width:1.5}
.access-card h3{font-size:1.6rem;color:var(--text);margin-bottom:.6rem}
.access-card p{font-size:.95rem;line-height:1.7;color:var(--text-soft);flex:1;margin-bottom:1.6rem}
.access-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:.78rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--red-500)}
.access-link svg{width:15px;height:15px;transition:transform .4s var(--ease-lux)}
.access-card:hover .access-link svg{transform:translateX(5px)}
@media(max-width:860px){.access{grid-template-columns:1fr}}

/* autres services (maillage) */
.crosslinks{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.crosslink{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line-warm);
  border-radius:var(--r-md);padding:1.7rem;transition:transform .5s var(--ease-lux),box-shadow .5s var(--ease-lux),border-color .4s;position:relative;overflow:hidden}
.crosslink::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--champagne);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease-lux)}
.crosslink:hover{transform:translateY(-3px);border-color:var(--champagne)}
.crosslink:hover::after{transform:scaleY(1)}
.crosslink .k{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne-deep);margin-bottom:.6rem;font-weight:700}
.crosslink .cl-ico{width:50px;height:50px;margin-bottom:1.1rem;color:var(--champagne-deep);display:flex;align-items:center;justify-content:flex-start;transition:transform .5s var(--ease-lux)}
.crosslink .cl-ico svg{width:46px;height:46px}
.crosslink:hover .cl-ico{transform:translateY(-2px) scale(1.04)}
.crosslink h4{font-size:1.15rem;color:var(--text);margin-bottom:.4rem}
.crosslink p{font-size:.86rem;color:var(--text-soft);line-height:1.6;flex:1;margin-bottom:1rem}
.crosslink .go{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.8rem;color:var(--red-500)}
.crosslink .go svg{width:13px;height:13px;transition:transform .4s var(--ease-lux)}
.crosslink:hover .go svg{transform:translateX(4px)}
@media(max-width:860px){.crosslinks{grid-template-columns:1fr}}

/* ── FORMULAIRES ── */
.form-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:2.5rem;align-items:start}
@media(max-width:900px){.form-layout{grid-template-columns:1fr}}
.form-card{background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-lg);padding:2.6rem;box-shadow:var(--sh-sm)}
@media(max-width:600px){.form-card{padding:1.6rem}}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:600px){.frow{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.15rem}
.field label{font-size:.74rem;font-weight:600;letter-spacing:.04em;color:var(--text)}
.field label .req{color:var(--red-500);margin-left:2px}
.field input,.field select,.field textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line-warm);border-radius:4px;
  background:var(--paper);font-size:.92rem;color:var(--text);font-family:var(--sans);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);outline:none;-webkit-appearance:none;appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--champagne);box-shadow:0 0 0 3px rgba(174,182,196,.16);background:#fff}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238c95a6' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.6rem}
.field textarea{resize:vertical;min-height:140px}
.check{display:flex;align-items:flex-start;gap:.7rem;font-size:.85rem;color:var(--text-soft);line-height:1.55;cursor:pointer}
.check input{width:17px;height:17px;margin-top:.12rem;flex-shrink:0;accent-color:var(--red-500)}
.hp{position:absolute;left:-9999px}
.form-side{display:flex;flex-direction:column;gap:1rem}
.side-box{background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-md);padding:1.6rem;border-left:3px solid var(--champagne)}
.side-box.red{border-left-color:var(--red-500)}
.side-box h4{font-size:.95rem;color:var(--text);margin-bottom:.5rem}
.side-box p{font-size:.85rem;color:var(--text-soft);line-height:1.6}
.side-phone{display:block;margin-top:.6rem;font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--navy-800)}
:root[data-head="sans"] .side-phone{font-family:var(--sans);font-style:normal;font-weight:700}
.form-ok{display:none;text-align:center;padding:2.6rem 2rem;background:var(--card);border:1px solid var(--champagne);border-radius:var(--r-lg)}
.form-ok.show{display:block}
.form-ok .ic{width:54px;height:54px;border-radius:50%;background:rgba(174,182,196,.16);display:flex;align-items:center;justify-content:center;margin:0 auto 1.1rem;color:var(--champagne-deep)}
.form-ok h3{font-size:1.4rem;color:var(--text);margin-bottom:.4rem}
.form-ok p{font-size:.92rem;color:var(--text-soft);line-height:1.6}

/* tabs (particulier/pro toggle) */
.tabs{display:inline-flex;gap:.4rem;padding:.35rem;border:1px solid var(--line-warm);border-radius:var(--r-full);background:var(--card);margin-bottom:2rem}
.tab{padding:.6rem 1.5rem;border-radius:var(--r-full);font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--text-soft);transition:all .35s var(--ease);cursor:pointer}
.tab.active{background:var(--ink-900);color:var(--on-dark)}

/* info grid (contact) */
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
@media(max-width:860px){.info-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.info-grid{grid-template-columns:1fr}}
.info-cell{background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-md);padding:1.7rem}
.info-cell .ic{width:40px;height:40px;border-radius:var(--r-sm);background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--navy-800);margin-bottom:1rem}
.info-cell .ic svg{width:20px;height:20px}
.info-cell h4{font-size:.8rem;letter-spacing:.04em;color:var(--muted);text-transform:uppercase;margin-bottom:.4rem;font-weight:600}
.info-cell p{font-size:.95rem;color:var(--text);line-height:1.55}

/* ── FOOTER slim (clair, certifs serif au centre) ── */
.sfoot{background:rgba(250,250,250,.97);border-top:1px solid #ececec;flex-shrink:0}
.sfoot-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.3rem 0;min-height:62px}
.sfoot-addr{font-size:.72rem;letter-spacing:.04em;color:var(--muted);flex:1}
.sfoot-certs{font-family:var(--serif);font-size:.98rem;letter-spacing:.015em;color:var(--text-soft);text-align:center;flex:0 0 auto}
.sfoot-links{display:flex;gap:1.3rem;justify-content:flex-end;flex:1;flex-wrap:wrap}
.sfoot-links a{font-size:.72rem;color:var(--muted);transition:color .35s var(--ease)}
.sfoot-links a:hover{color:var(--champagne-deep)}
@media(max-width:760px){
  .sfoot-in{flex-direction:column;text-align:center;gap:.9rem}
  .sfoot-addr,.sfoot-links{flex:none;justify-content:center}
}

/* ── NAV responsive ── */
@media(max-width:1024px){
  .gnav-right .gnav-rlink{display:none}
  .gnav-phone{display:none}
  .gnav-burger{display:flex}
  .gnav{padding:0 1.4rem;height:66px}
  .crumb-group{height:66px}
}
@media(max-width:560px){
  .gnav-crumbs .crumb-home,.gnav-crumbs .crumb-sep:first-of-type{display:none}
}

/* ============================================================
   THÉMATISATION PAR UNIVERS (pages intérieures)
   Particulier = rouge · Professionnel = bleu foncé luxe · zéro doré
   Icônes de contenu = noir luxe + sous-accent thème
   ============================================================ */
:root{ --accent:var(--red-500); --accent-2:var(--red-600); --accent-soft:var(--red-400); --ink-icon:#10131f; }
[data-universe="pro"]{ --accent:#2f4aa0; --accent-2:#22357a; --accent-soft:#8ea4df; --ink-icon:#10131f; }

/* mots accentués dans les titres */
.sec-h em{color:var(--accent)}
.statement em{color:var(--accent)}
.band-ink .statement em{color:var(--accent-soft)}
.xcta h2 em{color:var(--accent-soft)}

/* boutons */
.btn-red{--bg:var(--accent)}
.btn-red:hover{--bg:var(--accent-2);}
.btn-ghost:hover{border-color:var(--accent-soft)}

/* Boutons bleus : réutilisent les variables de l'univers professionnel */
.btn-blue{--bg:var(--accent)}
.btn-blue:hover{--bg:var(--accent-2)}
.btn-blue:focus-visible{outline:none}
.btn-ghost-blue:hover{border-color:var(--accent-soft)}

/* liens accéder / voir / découvrir */
.access-link{color:var(--accent)}
.crosslink .go{color:var(--accent)}

/* eyebrows de section (hors bannière .xhero) */
.sec-eyebrow{color:var(--accent)}
.sec-eyebrow .mark{background:var(--accent)}
.band-ink .sec-eyebrow{color:var(--accent-soft)}

/* labels (chips / kickers) */
.lcard .chip{color:var(--accent)}
.crosslink .k{color:var(--accent)}

/* contours & survols + barres d'accent */
.lcard:hover{border-color:var(--accent)}
.crosslink:hover{border-color:var(--accent)}
.access-card:hover{border-color:var(--accent)}
.lcard::after{background:var(--accent)}
.crosslink::after{background:var(--accent)}
.access-card::before{background:var(--accent)}
.statement::before{background:var(--accent)}
.value::before{background:var(--accent)}
.pillar::before{background:var(--accent)}
.pillar .pidx{color:var(--accent)}
.proc-n{color:var(--accent)}

/* FAQ */
.faq-item.open{border-color:var(--accent)}
.faq-item.open .faq-q{color:var(--accent)}

/* formulaires */
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.side-box{border-left-color:var(--accent)}
.side-box.red{border-left-color:var(--accent)}
.check input{accent-color:var(--accent)}

/* bandeau certifications (dégoldé) */
.certpill{color:var(--accent-soft)}
.certpill svg{color:var(--accent-soft)}

/* ===== ICÔNES de contenu : NOIR luxe + sous-accent thème (zéro doré) ===== */
.value .vn.vn-ico svg,.why-num.vn-ico svg,.cl-ico svg,.lc-ico svg,.access-ic svg,.pillar .picon svg,.info-cell .ic svg{color:var(--ink-icon)}
.cl-ico,.lc-ico,.access-ic,.info-cell .ic,.pillar .picon{color:var(--ink-icon)}
/* doré -> noir (les deux univers) */
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic,.pillar .picon) svg [fill="#aeb6c4"]{fill:currentColor}
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic,.pillar .picon) svg [stroke="#aeb6c4"]{stroke:currentColor}
/* rouge & bleu internes -> accent de l'univers */
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic) svg [fill="#e0552e"]{fill:var(--accent)}
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic) svg [stroke="#e0552e"]{stroke:var(--accent)}
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic) svg [fill="#6ea8d8"]{fill:var(--accent)}
:is(.vn-ico,.cl-ico,.lc-ico,.access-ic) svg [stroke="#6ea8d8"]{stroke:var(--accent)}

/* PRO : retirer les touches rouges de la bannière / CTA → bleu */
[data-universe="pro"] .xhero-badge .dot{background:var(--accent-soft)}
[data-universe="pro"] .xhero-bg{
  background:
    radial-gradient(ellipse 55% 70% at 86% 30%,rgba(58,85,176,.26) 0%,transparent 62%),
    radial-gradient(ellipse 60% 60% at 12% 90%,rgba(28,36,96,.55) 0%,transparent 60%);
}
[data-universe="pro"] .xcta-bg{background:radial-gradient(ellipse 60% 90% at 50% 120%,rgba(58,85,176,.28) 0%,transparent 60%)}
[data-universe="pro"] .panel-bar,[data-universe="pro"] .band-ink .sec-eyebrow{color:var(--accent-soft)}

/* ============================================================
   PAGES LÉGALES (prose) + ACTUALITÉS (presse)
   ============================================================ */
/* prose légale */
.legal{display:grid;grid-template-columns:.34fr .66fr;gap:3.5rem;align-items:start}
@media(max-width:900px){.legal{grid-template-columns:1fr;gap:2rem}}
.legal-toc{position:sticky;top:104px}
.legal-toc h4{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem;font-weight:600}
.legal-toc ol{list-style:none;counter-reset:toc;display:flex;flex-direction:column;gap:.2rem}
.legal-toc a{display:flex;gap:.7rem;align-items:baseline;padding:.5rem .7rem;border-radius:6px;font-size:.86rem;color:var(--text-soft);transition:background .25s var(--ease),color .25s var(--ease)}
.legal-toc a:hover{background:var(--paper-2);color:var(--text)}
.legal-toc a .n{font-family:var(--serif);font-style:italic;color:var(--accent);min-width:1.1rem}
:root[data-head="sans"] .legal-toc a .n{font-family:var(--sans);font-style:normal;font-weight:700}
.legal-body{max-width:760px}
.legal-art{padding:2rem 0;border-bottom:1px solid var(--line-warm)}
.legal-art:first-child{padding-top:0}
.legal-art:last-child{border-bottom:none}
.legal-art h2{display:flex;align-items:baseline;gap:1rem;font-size:1.45rem;color:var(--text);margin-bottom:1rem;letter-spacing:-.01em}
.legal-art h2 .an{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.5rem;color:var(--accent);min-width:2rem}
:root[data-head="sans"] .legal-art h2 .an{font-family:var(--sans);font-style:normal;font-weight:800}
.legal-art p{font-size:1rem;line-height:1.8;color:var(--text-soft)}
.legal-art p+p{margin-top:1rem}
.legal-art a.inl{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.legal-defs{display:flex;flex-direction:column;gap:.8rem;margin-top:1.1rem}
.legal-def{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;padding:.7rem 0;border-bottom:1px dotted var(--line-warm)}
.legal-def:last-child{border-bottom:none}
.legal-def dt{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600}
.legal-def dd{font-size:1rem;color:var(--text);line-height:1.55}
.legal-art ul.legal-list{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}
.legal-art ul.legal-list li{display:flex;gap:.75rem;align-items:flex-start;font-size:.98rem;line-height:1.6;color:var(--text-soft)}
.legal-art ul.legal-list li svg{width:16px;height:16px;flex-shrink:0;margin-top:.25rem;color:var(--accent)}
.legal-updated{font-size:.78rem;color:var(--muted);margin-top:2.2rem}

/* presse / actualités */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:960px){.news-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.news-grid{grid-template-columns:1fr}}
.news-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line-warm);border-radius:var(--r-lg);overflow:hidden;position:relative;
  transition:transform .55s var(--ease-lux),border-color .4s var(--ease)}
.news-card:hover{transform:translateY(-5px);border-color:var(--accent)}
.news-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink-900)}
.news-cover image-slot{width:100%;height:100%;display:block}
.news-cover .news-cat{position:absolute;top:.9rem;left:.9rem;z-index:3;font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--accent);padding:.35rem .7rem;border-radius:2px}
.news-body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;flex:1}
.news-meta{display:flex;align-items:center;gap:.6rem;font-size:.7rem;letter-spacing:.06em;color:var(--muted);margin-bottom:.8rem}
.news-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--accent)}
.news-card h3{font-size:1.2rem;line-height:1.28;color:var(--text);margin-bottom:.7rem;letter-spacing:-.01em}
.news-card p{font-size:.9rem;line-height:1.65;color:var(--text-soft);flex:1;margin-bottom:1.2rem}
.news-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.news-link svg{width:14px;height:14px;transition:transform .4s var(--ease-lux)}
.news-card:hover .news-link svg{transform:translateX(5px)}
.news-feature{grid-column:1 / -1;display:grid;grid-template-columns:1.05fr .95fr;gap:0;border-color:transparent}
@media(max-width:760px){.news-feature{grid-template-columns:1fr}}
.news-feature .news-cover{aspect-ratio:auto;min-height:320px}
@media(max-width:760px){.news-feature .news-cover{min-height:220px}}
.news-feature .news-body{padding:2.6rem 2.6rem 2.6rem;justify-content:center;border:1px solid var(--line-warm);border-left:none}
@media(max-width:760px){.news-feature .news-body{border-left:1px solid var(--line-warm);border-top:none}}
.news-feature h3{font-size:1.9rem;line-height:1.12}
.news-feature p{font-size:1rem}

/* ── Lecteur vidéo hero ── */
.xhero-visual{display:flex;align-items:center}
.hero-video{position:relative;display:block;width:100%;aspect-ratio:16/9;height:auto;border-radius:2px;overflow:hidden;
  border:1px solid rgba(243,239,230,.12);box-shadow:0 40px 90px rgba(7,9,18,.55);background:var(--ink-950);cursor:pointer}
.hero-video .hv-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;display:block;transition:opacity .4s var(--ease)}
.hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;background:#000;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.hero-video.playing video{opacity:1;pointer-events:auto}
.hero-video.playing .hv-play,.hero-video.playing .hv-cap,.hero-video.playing .hv-poster{opacity:0;pointer-events:none}
.hero-video.playing::after{opacity:0}
.hero-video::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,9,18,.1),rgba(7,9,18,.5));pointer-events:none;transition:background .5s var(--ease)}
.hero-video:hover::after{background:linear-gradient(180deg,rgba(7,9,18,.05),rgba(7,9,18,.4))}
.hv-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;
  width:84px;height:84px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(12,15,32,.55);border:1px solid rgba(174,182,196,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  transition:transform .5s var(--ease-lux),border-color .5s var(--ease),background .5s var(--ease)}
.hv-play::before{content:'';position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(174,182,196,.3)}
.hv-play svg{width:26px;height:26px;margin-left:4px;color:var(--champagne-soft);position:relative;z-index:1}
@media (prefers-reduced-motion: no-preference){
  .hv-play::after{content:'';position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--accent);opacity:0;animation:hvPulse 2.8s var(--ease-lux) infinite}
  @keyframes hvPulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.5);opacity:0}100%{opacity:0}}
}
.hero-video:hover .hv-play{transform:translate(-50%,-50%) scale(1.08);border-color:var(--accent);background:var(--accent)}
.hero-video:hover .hv-play svg{color:#fff}
.hv-cap{position:absolute;left:0;bottom:0;z-index:3;display:flex;align-items:center;gap:.6rem;
  background:var(--ink-950);border:1px solid rgba(174,182,196,.3);border-left:none;border-bottom:none;
  padding:.7rem 1.1rem;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-soft);font-weight:600}
.hv-cap .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.hv-play{border:1px solid rgba(174,182,196,.55);cursor:pointer}
.hero-video image-slot,.hero-video .hv-poster,.hero-video .hv-play,.hero-video .hv-cap{transition:opacity .4s var(--ease)}
@media(max-width:980px){.hero-video{height:auto}}

/* ============================================================
   RESPONSIVE — couche finale (robuste tous écrans)
   ============================================================ */
*{min-width:0}
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video{max-width:100%}
h1,h2,h3,h4,h5,p,a,li,dd,dt,span,.statement{overflow-wrap:break-word}
.wrap{padding-left:clamp(0.6rem,2vw,1rem);padding-right:clamp(0.6rem,2vw,1rem)}
.section{padding-top:clamp(3.4rem,8vw,7rem);padding-bottom:clamp(3.4rem,8vw,7rem)}

/* tablette large : grilles 3-col (y compris inline) → 2-col */
@media(max-width:1024px){
  .cards-4{grid-template-columns:repeat(2,1fr)!important}
  .crosslinks{grid-template-columns:repeat(2,1fr)}
}
/* tablette : maillage en 1 colonne, TOC légal non sticky */
@media(max-width:860px){
  .crosslinks{grid-template-columns:1fr!important}
  .legal-toc{position:static;top:auto}
  .news-grid{grid-template-columns:repeat(2,1fr)}
}
/* petit : tout en une colonne */
@media(max-width:768px){
  .cards-4{grid-template-columns:1fr!important}
  .values{grid-template-columns:1fr!important}
  .news-grid{grid-template-columns:1fr!important}
  .news-feature{grid-template-columns:1fr}
  .news-feature .news-cover{min-height:200px}
  .news-feature .news-body{border-left:1px solid var(--line-warm);border-top:none;padding:2rem 1.6rem}
  .news-feature h3{font-size:1.45rem}
}
/* mobile : CTA pleine largeur, héros resserré */
@media(max-width:600px){
  .xhero{padding-top:6.6rem}
  .xhero-ctas,.xcta-ctas{flex-direction:column;align-items:stretch}
  .xhero-ctas .btn,.xcta-ctas .btn{width:100%;justify-content:center}
  .xstat{padding:2.2rem 1rem}
  .legal-art h2{font-size:1.25rem;gap:.7rem}
  .legal-art h2 .an{font-size:1.2rem;min-width:1.5rem}
  .legal-def{grid-template-columns:1fr;gap:.2rem}
  .form-card{padding:1.4rem}
  .side-box{padding:1.4rem}
  .gnav{padding:0 1.1rem}
  .gnav-crumbs{max-width:60%}
  .statement{padding-left:1.1rem}
}
/* très petit : éviter tout chevauchement nav, alléger pictos */
@media(max-width:420px){
  .gnav-logo img{height:21px}
  .crumb-cur{max-width:44vw}
  .hv-play{width:64px;height:64px}
  .hv-play svg{width:20px;height:20px}
  .xhero-icon{width:104px;height:104px}
  .xhero-icon svg{width:50px;height:50px}
}


/* ============================================================
   TEXTE ACCENTUÉ → couleur d'univers (rouge / bleu lisible).
   L'argent reste réservé aux icônes & anneaux. Zéro doré.
   ============================================================ */
.xhero .eyebrow,.xhero-badge,.simu-badge,.hv-cap,.visual-cap span,
.xhero h1 em,.xstat .v em,.xcta h2 em,.simu h2 em,.simu-fig .n,
.lfoot-col h5,.lfoot-bot .certs{color:var(--accent-soft)}
.gmenu-grp h5,.crumb-group:hover .crumb-parent{color:var(--accent)}
.sfoot-links a:hover{color:var(--accent)}
.gnav-drop a:hover,.gnav-drop a.cur{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.gnav-rlink::after{background:var(--accent)}
.gnav-phone svg{color:var(--accent)}
.gnav-phone:hover{border-color:var(--accent)}
.xhero-badge .dot,.simu-badge .live{background:var(--accent-soft)}
.form-ok{border-color:var(--accent)}
.form-ok .ic{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
/* hairline argent discrète sur fond sombre */
.lfoot-col a:hover{color:var(--accent-soft)}

/* ============================================================
   ABOUT / QUI SOMMES-NOUS — composants de page
   Classes Elementor recommandées :
   - Hero : xhero grain xhero-about
   - Container intérieur : wrap xhero-in xhero-about-in
   - Bloc rôle : section > wrap edito > edito-body + promise
   ============================================================ */

.xhero.xhero-about{
  background:
    radial-gradient(ellipse 55% 70% at 86% 30%, rgba(201,59,24,.16) 0%, transparent 62%),
    radial-gradient(ellipse 60% 60% at 12% 90%, rgba(42,46,114,.50) 0%, transparent 60%),
    linear-gradient(180deg,#050816 0%,#020617 100%) !important;
}

.xhero-about .xhero-bg{display:none !important;}

.xhero-about .xhero-about-in{
  width:100% !important;
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:2.5rem !important;
  padding-right:2.5rem !important;
}

.xhero-about .xhero-about-in,
.xhero-about .xhero-about-in > .e-con-inner{
  min-height:620px !important;
  display:grid !important;
  grid-template-columns:1.05fr .95fr !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5rem !important;
}

.xhero-about .xhero-copy{
  width:100% !important;
  max-width:560px !important;
  justify-content:center !important;
  align-items:flex-start !important;
  text-align:left !important;
}

.xhero-about .xhero-copy > *,
.xhero-about .xhero-copy .elementor-widget,
.xhero-about .xhero-copy .display,
.xhero-about .xhero-copy .xhero-lead{
  max-width:560px !important;
}

.xhero-about .display{margin-bottom:2rem !important;}
.xhero-about .xhero-lead{margin-bottom:2.6rem !important;}

.xhero-about .xhero-visual{
  width:100% !important;
  max-width:520px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.xhero-about .hero-video{
  width:100% !important;
  max-width:520px !important;
}

/* ABOUT — Notre rôle */
.wrap.edito,
.wrap.edito > .e-con-inner{
  display:grid !important;
  grid-template-columns:.85fr 1.15fr !important;
  gap:5rem !important;
  align-items:start !important;
}

.edito .sec-h{
  max-width:420px !important;
}

.edito-body p{
  color:var(--text-soft) !important;
  font-size:1.02rem !important;
  line-height:1.85 !important;
  margin:0 !important;
}

.edito-body p + p{
  margin-top:1.3rem !important;
}

.promise ul,
ul.promise{
  list-style:none !important;
  margin:2.2rem 0 0 !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:.95rem !important;
}

.promise li,
ul.promise li{
  position:relative !important;
  display:block !important;
  padding-left:1.8rem !important;
  font-size:.98rem !important;
  color:var(--text) !important;
  line-height:1.5 !important;
}

.promise li::before,
ul.promise li::before{
  content:'✓' !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  color:var(--red-500) !important;
  font-weight:700 !important;
  line-height:1.5 !important;
}

@media(max-width:980px){
  .wrap.edito,
  .wrap.edito > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:2.2rem !important;
  }
}

@media(max-width:880px){
  .xhero-about .xhero-about-in,
  .xhero-about .xhero-about-in > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:3rem !important;
    min-height:auto !important;
  }
  .xhero-about .xhero-about-in{
    padding-left:1.4rem !important;
    padding-right:1.4rem !important;
  }
}

/* ============================================================
   ABOUT — Nos 3 piliers d'expertise / Elementor fidelity fix
   Reproduit le HTML source :
   band-paper2 > section.pillars-head > wrap puis wrap.pillars-wrap > pillars
   Compatible aussi si Elementor garde tout dans un seul wrap.
============================================================ */

/* Le fond gris doit rester sur toute la bande, sans fond blanc interne */
.elementor .band-paper2:has(.pillars),
.elementor .band-paper2:has(.pillar){
  background:#f5f5f7 !important;
  background-color:#f5f5f7 !important;
}

.elementor .band-paper2 .pillars-head,
.elementor .band-paper2 .e-con.pillars-head,
.elementor .band-paper2 .section.pillars-head{
  padding-bottom:0 !important;
  background:transparent !important;
  background-color:transparent !important;
}

.elementor .band-paper2 .pillars-head > .wrap,
.elementor .band-paper2 .pillars-head > .e-con.wrap,
.elementor .band-paper2 .pillars-head > .elementor-element.wrap,
.elementor .band-paper2 .pillars-head > .wrap > .e-con-inner{
  background:transparent !important;
  background-color:transparent !important;
}

.elementor .pillars-wrap,
.elementor .e-con.pillars-wrap,
.elementor .elementor-element.pillars-wrap{

  background:transparent !important;
  background-color:transparent !important;
}

.elementor .pillars-wrap > .e-con-inner{
  display:block !important;
  background:transparent !important;
  background-color:transparent !important;
}

/* Si l'utilisateur met encore titre + piliers dans le même wrap, on garde quand même le rendu proche du source. */

.elementor .pillars,
.elementor .e-con.pillars,
.elementor .elementor-element.pillars,
.elementor .pillars > .e-con-inner{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;
  margin-top:0 !important;
  padding:0 !important;
  border-top:1px solid var(--line-warm) !important;
  background:transparent !important;
  background-color:transparent !important;
}

.elementor .pillar,
.elementor .e-con.pillar,
.elementor .elementor-element.pillar{
  position:relative !important;
  display:block !important;
  padding:2.8rem 2.2rem 3rem !important;
  min-height:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  border-right:1px solid var(--line-warm) !important;
  border-radius:0 !important;
  overflow:visible !important;
  transition:background .5s var(--ease) !important;
}

.elementor .pillar:last-child,
.elementor .e-con.pillar:last-child,
.elementor .elementor-element.pillar:last-child{
  border-right:none !important;
}

.elementor .pillar::before,
.elementor .e-con.pillar::before,
.elementor .elementor-element.pillar::before{
  content:"" !important;
  position:absolute !important;
  top:-1px !important;
  left:0 !important;
  width:0 !important;
  height:2px !important;
  background:var(--red-500) !important;
  transition:width .6s var(--ease-lux) !important;
  display:block !important;
  z-index:2 !important;
}

.elementor .pillar:hover,
.elementor .e-con.pillar:hover,
.elementor .elementor-element.pillar:hover{
  background:var(--card) !important;
}

.elementor .pillar:hover::before,
.elementor .e-con.pillar:hover::before,
.elementor .elementor-element.pillar:hover::before{
  width:100% !important;
}

.elementor .pillar .picon,
.elementor .pillar .picon svg{
  width:38px !important;
  height:38px !important;
}

.elementor .pillar .picon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:var(--navy-800) !important;
  margin:1.6rem 0 1.3rem !important;
}

.elementor .pillar h3{
  font-family:var(--serif) !important;
  font-size:1.5rem !important;
  line-height:1.08 !important;
  color:var(--text) !important;
  margin:0 0 .8rem !important;
}

.elementor .pillar p{
  font-size:.95rem !important;
  line-height:1.75 !important;
  color:var(--text-soft) !important;
  margin:0 !important;
}

@media(max-width:900px){
  .elementor .pillars,
  .elementor .e-con.pillars,
  .elementor .elementor-element.pillars,
  .elementor .pillars > .e-con-inner{
    grid-template-columns:1fr !important;
    border-top:none !important;
  }

  .elementor .pillar,
  .elementor .e-con.pillar,
  .elementor .elementor-element.pillar{
    padding:3rem 0 !important;
    border-right:none !important;
    border-top:1px solid var(--line-warm) !important;
  }

  .elementor .pillar::before,
  .elementor .e-con.pillar::before,
  .elementor .elementor-element.pillar::before{
    top:-1px !important;
  }
}


/* ABOUT — Certifications : correction finale espacements */
.elementor .section .wrap.about-certs > .e-con-inner{
  gap:0 !important;
}

.elementor .section .wrap.about-certs .sec-h{
  margin:0 0 .8rem !important;
}

.elementor .section .wrap.about-certs .sec-lead{
  margin-top:0 !important;
  margin-bottom:1.8rem !important;
}

.elementor .section .wrap.about-certs .sec-lead p{
  margin:0 !important;
}

.elementor .section .wrap.about-certs .cards-4{
  margin:0 !important;
  padding:0 !important;
  gap:1.2rem !important;
}

.elementor .section .wrap.about-certs .cards-4 + .cards-4{
  margin-top:1.2rem !important;
}

.elementor .section .wrap.about-certs .lcard{
  padding:1.6rem 1.7rem !important;
}

.elementor .section .wrap.about-certs .lcard .elementor-widget,
.elementor .section .wrap.about-certs .lcard .elementor-widget-container{
  margin:0 !important;
}

.elementor .section .wrap.about-certs .lcard .chip{
  margin-bottom:1rem !important;
}

.elementor .section .wrap.about-certs .lcard h4{
  margin:0 0 .55rem !important;
}

.elementor .section .wrap.about-certs .lcard p{
  margin:0 !important;
}

/* ABOUT — Références & partenaires */
.elementor .refs-section{
  padding-top:5rem !important;
  padding-bottom:5rem !important;
}

.elementor .refs-wrap > .e-con-inner{
  gap:0 !important;
  align-items:center !important;
}

.elementor .refs-section .elementor-widget{
  margin-bottom:0 !important;
}

.elementor .refs-eyebrow{
  display:flex !important;
  justify-content:center !important;
  margin-bottom:1.2rem !important;
}

.elementor .refs-title{
  text-align:center !important;
  margin:0 !important;
}

.elementor .refs-hair{
  border:0 !important;
  height:1px !important;
  width:100% !important;
  max-width:900px !important;
  margin:2.4rem auto 0 !important;
  background:linear-gradient(
    90deg,
    transparent,
    var(--hair-d) 18%,
    var(--hair-d) 82%,
    transparent
  ) !important;
}

.elementor .refs-section .reflogos{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:center !important;
  gap:1.6rem !important;
  padding:2.2rem 0 0 !important;
  margin:0 !important;
}

.elementor .refs-section .reflogo{
  background:#fff !important;
  border-radius:14px !important;
  padding:.7rem 1rem !important;
  width:226px !important;
  height:120px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:0 18px 40px rgba(7,9,18,.3) !important;
}

.elementor .refs-section .reflogo img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
}
/* ============================================================
   SERVICE PARTICULIER SOLAIRE — correctifs Elementor propres
   - simulateur adapté à la structure Elementor actuelle
   - cartes .cards-4 sans chevauchement, sans toucher à .prest
   - FAQ accordéon alignée et fonctionnelle
   ============================================================ */

/* Simulateur PV : recrée le fond/glow même si le HTML Elementor ne contient pas .simu-glow ni .grain */
.elementor .simu,
.simu{
  position:relative !important;
  overflow:hidden !important;
  background:
    radial-gradient(ellipse 50% 80% at 88% 20%, color-mix(in srgb,var(--accent) 26%,transparent) 0%, transparent 60%),
    radial-gradient(ellipse 60% 70% at 8% 95%, rgba(174,182,196,.16) 0%, transparent 60%),
    var(--ink-900) !important;
  color:var(--on-dark) !important;
}

.elementor .simu::before,
.simu::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  opacity:.55 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px) !important;
  background-size:44px 44px !important;
}

.elementor .simu > .wrap,
.elementor .simu .wrap,
.simu > .wrap,
.simu .wrap{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:grid !important;
  grid-template-columns:1.15fr .85fr !important;
  gap:3.5rem !important;
  align-items:center !important;
  padding-top:clamp(3rem,6vw,5rem) !important;
  padding-bottom:clamp(3rem,6vw,5rem) !important;
}

.elementor .simu .simu-copy,
.simu .simu-copy{
  min-width:0 !important;
}

.elementor .simu .simu-copy .elementor-widget,
.elementor .simu .simu-copy .elementor-widget-container,
.simu .simu-copy .elementor-widget,
.simu .simu-copy .elementor-widget-container{
  margin:0 !important;
}

.elementor .simu .simu-copy h2,
.simu .simu-copy h2{
  margin-top:0 !important;
}

.elementor .simu .btn,
.simu .btn{
  width:max-content !important;
  max-width:100% !important;
}

.elementor .simu .simu-vis,
.simu .simu-vis{
  width:100% !important;
  max-width:460px !important;
  justify-self:center !important;
}

@media(max-width:880px){
  .elementor .simu > .wrap,
  .elementor .simu .wrap,
  .simu > .wrap,
  .simu .wrap{
    grid-template-columns:1fr !important;
    gap:2.4rem !important;
  }
}

/* Cartes : corrige uniquement les containers .cards-4, pas les grilles .prest */
.elementor .cards-4{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)) !important;
  gap:1.4rem !important;
  align-items:stretch !important;
}

.elementor .cards-4 > .lcard,
.elementor .cards-4 > .e-con.lcard,
.elementor .cards-4 > .elementor-element.lcard{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:100% !important;
  align-self:stretch !important;
  box-sizing:border-box !important;
}

.elementor .cards-4 .lcard > .elementor-widget,
.elementor .cards-4 .lcard .elementor-widget-container{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* FAQ : structure Elementor — rendu conforme template source */
.elementor .faq{
  width:100% !important;
  max-width:900px !important;
  margin:0 !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:.75rem !important;
  align-items:stretch !important;
  overflow:visible !important;
}

.elementor .faq > .elementor-widget,
.elementor .faq > .elementor-widget-html,
.elementor .faq .elementor-widget-container{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

.elementor .faq-item{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  border:1px solid var(--line-warm) !important;
  border-radius:var(--r-md) !important;
  background:var(--card) !important;
  overflow:hidden !important;
  transition:border-color .3s var(--ease) !important;
}

.elementor .faq-item.open{
  border-color:var(--accent) !important;
}

.elementor .faq-q{
  width:100% !important;
  min-height:0 !important;
  padding:1.3rem 1.6rem !important;
  border:0 !important;
  background:transparent !important;
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:1.2rem !important;
  text-align:left !important;
  font-family:var(--sans) !important;
  font-size:1rem !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  color:var(--text) !important;
  cursor:pointer !important;
  box-shadow:none !important;
  outline:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}

.elementor .faq-q:focus,
.elementor .faq-q:focus-visible{
  outline:none !important;
  box-shadow:none !important;
}

.elementor .faq-item.open .faq-q{
  color:var(--accent) !important;
}

.elementor .faq-q .ic{
  flex:0 0 20px !important;
  width:20px !important;
  height:20px !important;
  position:relative !important;
}

.elementor .faq-q .ic::before,
.elementor .faq-q .ic::after{
  content:'' !important;
  position:absolute !important;
  background:currentColor !important;
  border-radius:2px !important;
  transition:transform .4s var(--ease-lux),opacity .25s var(--ease) !important;
}

.elementor .faq-q .ic::before{
  top:9px !important;
  left:2px !important;
  right:2px !important;
  height:2px !important;
}

.elementor .faq-q .ic::after{
  left:9px !important;
  top:2px !important;
  bottom:2px !important;
  width:2px !important;
}

.elementor .faq-item.open .faq-q .ic::after{
  transform:scaleY(0) !important;
}

.elementor .faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .45s var(--ease);
}

.elementor .faq-a-in{
  padding:0 1.6rem 1.45rem !important;
  font-size:.94rem !important;
  line-height:1.75 !important;
  color:var(--text-soft) !important;
}

@media(max-width:768px){
  .elementor .faq-q{
    padding:1.15rem 1.2rem !important;
  }
  .elementor .faq-a-in{
    padding:0 1.2rem 1.25rem !important;
  }
}

/* ============================================================
   PAGE DEMANDE — Adaptation Elementor + Contact Form 7
============================================================ */

.demande-page .form-layout{
  width:100% !important;
}

.demande-page .form-layout > .e-con-inner{
  display:grid !important;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr) !important;
  gap:2.5rem !important;
  align-items:start !important;
}

.demande-page .form-layout > .e-con-inner > *{
  min-width:0 !important;
  width:100% !important;
}

.demande-page .wpcf7{
  width:100% !important;
}

.demande-page .wpcf7-form{
  margin:0 !important;
}

.demande-page .form-card p{
  margin:0 !important;
}

/* Retire les balises automatiques éventuellement ajoutées par CF7 */
.demande-page .form-card br{
  display:none !important;
}

.demande-page .wpcf7-form-control-wrap{
  display:block !important;
  width:100% !important;
}

.demande-page .field input,
.demande-page .field select,
.demande-page .field textarea{
  box-sizing:border-box !important;
}

/* Checkbox Contact Form 7 */
.demande-page .check .wpcf7-form-control-wrap{
  width:auto !important;
  flex:0 0 auto !important;
}

.demande-page .check .wpcf7-acceptance{
  display:block !important;
}

.demande-page .check .wpcf7-list-item{
  margin:0 !important;
}

.demande-page .check .wpcf7-list-item label{
  display:block !important;
}

.demande-page .check input[type="checkbox"]{
  width:17px !important;
  height:17px !important;
  margin:0 !important;
}

/* Bouton */
.demande-page .demande-submit{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:.7rem !important;
  margin-top:1.5rem !important;
  border:0 !important;
  cursor:pointer !important;
}

.demande-page .demande-submit svg{
  width:17px !important;
  height:17px !important;
  transition:transform .35s var(--ease-lux) !important;
}

.demande-page .demande-submit:hover svg{
  transform:translateX(4px) !important;
}

/* Erreurs */
.demande-page .wpcf7-not-valid{
  border-color:var(--red-500) !important;
}

.demande-page .wpcf7-not-valid-tip{
  display:block !important;
  margin-top:.35rem !important;
  color:var(--red-500) !important;
  font-size:.74rem !important;
  line-height:1.4 !important;
}

/* Message global CF7 */
.demande-page .wpcf7-response-output{
  margin:1.2rem 0 0 !important;
  padding:1rem 1.1rem !important;
  border-radius:var(--r-sm) !important;
  font-size:.85rem !important;
  line-height:1.55 !important;
}

.demande-page form.sent .wpcf7-response-output{
  border:1px solid var(--champagne) !important;
  background:color-mix(in srgb,var(--champagne) 10%,#fff) !important;
  color:var(--text) !important;
}

.demande-page form.invalid .wpcf7-response-output,
.demande-page form.failed .wpcf7-response-output{
  border:1px solid var(--red-500) !important;
  background:color-mix(in srgb,var(--red-500) 7%,#fff) !important;
  color:var(--text) !important;
}

/* Spinner */
.demande-page .wpcf7-spinner{
  position:absolute !important;
  margin:0 !important;
}

/* Colonne latérale */
.demande-page .form-side{
  width:100% !important;
}

.demande-page .form-side > .e-con-inner{
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
}

.demande-page .form-side .side-box{
  width:100% !important;
}

.demande-page .side-box .elementor-widget{
  margin-bottom:0 !important;
}

.demande-page .side-box h4{
  margin:0 0 .5rem !important;
}

.demande-page .side-box p{
  margin:0 !important;
}

/* Responsive */
@media(max-width:900px){

  .demande-page .form-layout > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:1.5rem !important;
  }

  .demande-page .form-side > .e-con-inner{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:600px){

  .demande-page .form-side > .e-con-inner{
    grid-template-columns:1fr !important;
  }

  .demande-page .form-card{
    padding:1.4rem !important;
  }
}

/* ============================================================
   MAFATEC — PAGE DEMANDE PARTICULIER
   Elementor + Contact Form 7
============================================================ */


/* ------------------------------------------------------------
   Mise en page générale
------------------------------------------------------------ */

.elementor .demande-page .form-layout,
.elementor .demande-page .e-con.form-layout{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr) !important;
  gap:2.5rem !important;
  align-items:start !important;
  margin:0 !important;
  padding:0 !important;
}

/* Compatibilité si Elementor génère un e-con-inner */
.elementor .demande-page .form-layout > .e-con-inner{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr) !important;
  gap:2.5rem !important;
  align-items:start !important;
}

.elementor .demande-page .form-layout > *,
.elementor .demande-page .form-layout > .e-con-inner > *{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}


/* ------------------------------------------------------------
   Widget shortcode et wrappers Contact Form 7
------------------------------------------------------------ */

.elementor .demande-page .elementor-widget-shortcode,
.elementor .demande-page .elementor-widget-shortcode > .elementor-widget-container,
.elementor .demande-page .elementor-shortcode,
.elementor .demande-page .wpcf7,
.elementor .demande-page .wpcf7-form{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}


/* ------------------------------------------------------------
   Carte principale du formulaire
------------------------------------------------------------ */

.elementor .demande-page .mafatec-cf7-form{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:column !important;
  gap:1.25rem !important;

  margin:0 !important;
  padding:2.5rem !important;

  background:#fff !important;
  border:1px solid var(--line-warm,#e1e2e7) !important;
  border-radius:18px !important;

  box-shadow:
    0 24px 70px rgba(9,12,30,.055),
    0 5px 18px rgba(9,12,30,.025) !important;

  color:var(--text,#111427) !important;
}


/* ------------------------------------------------------------
   Correction des balises automatiques ajoutées par CF7
------------------------------------------------------------ */

.elementor .demande-page .mafatec-cf7-form p{
  margin:0 !important;
  padding:0 !important;
}

.elementor .demande-page .mafatec-cf7-form br{
  display:none !important;
}

.elementor .demande-page .mafatec-field > p{
  display:contents !important;
}

.elementor .demande-page .mafatec-submit-wrap > p{
  display:contents !important;
}

.elementor .demande-page .mafatec-consent > p{
  display:contents !important;
}


/* ------------------------------------------------------------
   Lignes à deux colonnes
------------------------------------------------------------ */

.elementor .demande-page .mafatec-form-row{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:1.15rem !important;
  margin:0 !important;
}


/* ------------------------------------------------------------
   Champs
------------------------------------------------------------ */

.elementor .demande-page .mafatec-field{
  width:100% !important;
  min-width:0 !important;

  display:flex !important;
  flex-direction:column !important;
  gap:.55rem !important;

  margin:0 !important;
  padding:0 !important;
}

.elementor .demande-page .mafatec-field label,
.elementor .demande-page .mafatec-label{
  display:block !important;
  width:100% !important;

  margin:0 !important;
  padding:0 !important;

  color:var(--text,#111427) !important;
  font-family:var(--sans) !important;
  font-size:.82rem !important;
  line-height:1.4 !important;
  font-weight:700 !important;
}

.elementor .demande-page .mafatec-required{
  margin-left:.18rem !important;
  color:var(--red-500,#d43a17) !important;
}

.elementor .demande-page .wpcf7-form-control-wrap{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}


/* ------------------------------------------------------------
   Inputs, select et textarea
------------------------------------------------------------ */

.elementor .demande-page .mafatec-control,
.elementor .demande-page input.wpcf7-text,
.elementor .demande-page input.wpcf7-email,
.elementor .demande-page input.wpcf7-tel,
.elementor .demande-page select.wpcf7-select,
.elementor .demande-page textarea.wpcf7-textarea{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;

  margin:0 !important;

  border:1px solid var(--line-warm,#dfe1e6) !important;
  border-radius:7px !important;
  outline:none !important;

  background:#fff !important;
  color:var(--text,#111427) !important;

  font-family:var(--sans) !important;
  font-size:1rem !important;
  line-height:1.5 !important;

  box-shadow:none !important;

  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    background-color .25s ease !important;
}

.elementor .demande-page input.wpcf7-text,
.elementor .demande-page input.wpcf7-email,
.elementor .demande-page input.wpcf7-tel,
.elementor .demande-page select.wpcf7-select{
  min-height:52px !important;
  padding:.8rem 1rem !important;
}

.elementor .demande-page textarea.wpcf7-textarea{
  display:block !important;
  min-height:150px !important;
  height:150px !important;
  padding:1rem !important;
  resize:vertical !important;
}

.elementor .demande-page input::placeholder,
.elementor .demande-page textarea::placeholder{
  color:#8e929d !important;
  opacity:1 !important;
}

.elementor .demande-page input:focus,
.elementor .demande-page select:focus,
.elementor .demande-page textarea:focus{
  border-color:var(--red-500,#d43a17) !important;
  box-shadow:0 0 0 4px rgba(212,58,23,.08) !important;
}


/* Champ antispam ajouté par une extension */
.elementor .demande-page .fit-the-fullspace,
.elementor .demande-page input[aria-hidden="true"],
.elementor .demande-page .akismet-fields-container{
  display:none !important;
}


/* ------------------------------------------------------------
   Radios et checkboxes de projet
------------------------------------------------------------ */

.elementor .demande-page .mafatec-options{
  width:100% !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.6rem .75rem !important;
  margin:0 !important;
}

.elementor .demande-page .mafatec-options .wpcf7-list-item{
  margin:0 !important;
}

.elementor .demande-page .mafatec-options .wpcf7-list-item label{
  width:auto !important;
  min-height:40px !important;

  display:inline-flex !important;
  align-items:center !important;
  gap:.45rem !important;

  padding:.5rem .75rem !important;

  border:1px solid var(--line-warm,#dfe1e6) !important;
  border-radius:7px !important;
  background:#fff !important;

  color:var(--text-soft,#565d72) !important;
  font-size:.84rem !important;
  font-weight:500 !important;
  cursor:pointer !important;
}

.elementor .demande-page .mafatec-options input[type="radio"],
.elementor .demande-page .mafatec-options input[type="checkbox"]{
  width:16px !important;
  height:16px !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  accent-color:var(--red-500,#d43a17) !important;
}


/* ------------------------------------------------------------
   Consentement RGPD
------------------------------------------------------------ */

.elementor .demande-page .mafatec-consent{
  width:100% !important;
  margin:.15rem 0 0 !important;
}

.elementor .demande-page .mafatec-consent .wpcf7-form-control-wrap,
.elementor .demande-page .mafatec-consent .wpcf7-acceptance{
  width:100% !important;
  display:block !important;
}

.elementor .demande-page .mafatec-consent .wpcf7-list-item{
  width:100% !important;
  margin:0 !important;
}

.elementor .demande-page .mafatec-consent .wpcf7-list-item label{
  width:100% !important;

  display:flex !important;
  align-items:flex-start !important;
  gap:.75rem !important;

  margin:0 !important;
  cursor:pointer !important;
}

.elementor .demande-page .mafatec-consent input[type="checkbox"]{
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  min-height:0 !important;

  margin:.15rem 0 0 !important;
  padding:0 !important;

  accent-color:var(--red-500,#d43a17) !important;
}

.elementor .demande-page .mafatec-consent .wpcf7-list-item-label{
  color:var(--text-soft,#565d72) !important;
  font-family:var(--sans) !important;
  font-size:.86rem !important;
  line-height:1.6 !important;
  font-weight:400 !important;
}


/* ------------------------------------------------------------
   Bouton d’envoi
------------------------------------------------------------ */

.elementor .demande-page .mafatec-submit-wrap{
  position:relative !important;
  width:100% !important;
  margin:.15rem 0 0 !important;
}

.elementor .demande-page .mafatec-submit{
  width:100% !important;
  min-height:58px !important;

  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.75rem !important;

  margin:0 !important;
  padding:1rem 1.5rem !important;

  border:1px solid var(--red-500,#d43a17) !important;
  border-radius:7px !important;

  background:var(--red-500,#d43a17) !important;
  color:#fff !important;

  font-family:var(--sans) !important;
  font-size:.95rem !important;
  line-height:1 !important;
  font-weight:700 !important;

  cursor:pointer !important;

  transition:
    transform .3s ease,
    background-color .3s ease,
    box-shadow .3s ease !important;
}

.elementor .demande-page .mafatec-submit svg{
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  transition:transform .3s ease !important;
}

.elementor .demande-page .mafatec-submit:hover{
  transform:translateY(-2px) !important;
  background:#bd3214 !important;
  border-color:#bd3214 !important;
  box-shadow:0 18px 34px rgba(212,58,23,.22) !important;
}

.elementor .demande-page .mafatec-submit:hover svg{
  transform:translateX(4px) !important;
}


/* ------------------------------------------------------------
   Colonne latérale
------------------------------------------------------------ */

.elementor .demande-page .form-side,
.elementor .demande-page .e-con.form-side{
  width:100% !important;

  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;

  margin:0 !important;
  padding:0 !important;
}

.elementor .demande-page .form-side > .e-con-inner{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
}

.elementor .demande-page .side-box{
  width:100% !important;
  box-sizing:border-box !important;

  margin:0 !important;
  padding:1.7rem 1.8rem !important;

  background:#fff !important;
  border:1px solid var(--line-warm,#e1e2e7) !important;
  border-left:3px solid var(--red-500,#d43a17) !important;
  border-radius:14px !important;

  color:var(--text,#111427) !important;
}

.elementor .demande-page .side-box .elementor-widget-container{
  margin:0 !important;
}

.elementor .demande-page .side-box h4{
  margin:0 0 .55rem !important;

  color:var(--text,#111427) !important;
  font-family:var(--sans) !important;
  font-size:1rem !important;
  line-height:1.35 !important;
  font-weight:700 !important;
}

.elementor .demande-page .side-box p{
  margin:0 !important;

  color:var(--text-soft,#565d72) !important;
  font-family:var(--sans) !important;
  font-size:.86rem !important;
  line-height:1.6 !important;
}


/* ------------------------------------------------------------
   Validation CF7
------------------------------------------------------------ */

.elementor .demande-page .wpcf7-not-valid{
  border-color:var(--red-500,#d43a17) !important;
}

.elementor .demande-page .wpcf7-not-valid-tip{
  display:block !important;
  margin-top:.35rem !important;

  color:var(--red-500,#d43a17) !important;
  font-size:.75rem !important;
  line-height:1.4 !important;
}

.elementor .demande-page .wpcf7-response-output{
  margin:1.2rem 0 0 !important;
  padding:1rem 1.1rem !important;

  border-radius:8px !important;

  font-size:.84rem !important;
  line-height:1.55 !important;
}

.elementor .demande-page .wpcf7-spinner{
  position:absolute !important;
  right:1rem !important;
  top:50% !important;

  margin:0 !important;
  transform:translateY(-50%) !important;
}


/* ------------------------------------------------------------
   Responsive
------------------------------------------------------------ */

@media(max-width:900px){

  .elementor .demande-page .form-layout,
  .elementor .demande-page .e-con.form-layout,
  .elementor .demande-page .form-layout > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:1.5rem !important;
  }

  .elementor .demande-page .form-side{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:680px){

  .elementor .demande-page .mafatec-form-row{
    grid-template-columns:1fr !important;
    gap:1.15rem !important;
  }

  .elementor .demande-page .mafatec-cf7-form{
    padding:1.5rem !important;
  }

  .elementor .demande-page .form-side{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:480px){

  .elementor .demande-page .mafatec-cf7-form{
    padding:1.2rem !important;
    border-radius:14px !important;
  }

  .elementor .demande-page .mafatec-options{
    flex-direction:column !important;
  }

  .elementor .demande-page .mafatec-options .wpcf7-list-item label{
    width:100% !important;
  }
}

.elementor-shortcode .wpcf7 form.invalid .wpcf7-response-output, .elementor-shortcode .wpcf7 form.unaccepted .wpcf7-response-output, .elementor-shortcode .wpcf7 form.payment-required .wpcf7-response-output, .elementor-shortcode .wpcf7 form.spam .wpcf7-response-output {
    border-color: red !important;
	color: red !important;
}
/* ============================================================
   MAFATEC — DEMANDE PROFESSIONNELLE
   Fusion avec les composants existants de pages.css
   Classes Elementor :
   - page principale : demande-page pro-demand-page
   - univers : attribut data-universe="pro" sur un parent
     ou classe universe-pro pro-demand-page
   - section : section pro-demand-section
   - grille : form-layout pro-demand-layout
   - colonne droite : form-side pro-login-side
   - carte espace pro : side-box pro-login-card
   ============================================================ */

/* Permet aussi d'activer l'univers professionnel via une classe Elementor. */
.universe-pro,
.pro-demand-page{
  --accent:#2f4aa0;
  --accent-2:#22357a;
  --accent-soft:#8ea4df;
  --ink-icon:#10131f;
}

/* La section réutilise entièrement .section ; cette classe ne gère que le fond. */
.elementor .pro-demand-section,
.pro-demand-section{
  position:relative !important;
  width:100% !important;
  background:var(--paper-2,#f5f5f7) !important;
}

/* Le wrap conserve la largeur définie par Elementor et le thème. */
.elementor .pro-demand-section > .wrap,
.elementor .pro-demand-section .wrap,
.pro-demand-section > .wrap,
.pro-demand-section .wrap{
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Mise en page : extension de .form-layout, sans recréer le composant. */
.elementor .pro-demand-page .pro-demand-layout,
.elementor .pro-demand-page .e-con.pro-demand-layout,
.pro-demand-page .pro-demand-layout{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr) !important;
  gap:2.5rem !important;
  align-items:start !important;
  margin:0 !important;
  padding:0 !important;
}

.elementor .pro-demand-page .pro-demand-layout > .e-con-inner{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr) !important;
  gap:2.5rem !important;
  align-items:start !important;
}

.elementor .pro-demand-page .pro-demand-layout > *,
.elementor .pro-demand-page .pro-demand-layout > .e-con-inner > *{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}

/* Widget shortcode et wrappers Contact Form 7. */
.elementor .pro-demand-page .elementor-widget-shortcode,
.elementor .pro-demand-page .elementor-widget-shortcode > .elementor-widget-container,
.elementor .pro-demand-page .elementor-shortcode,
.elementor .pro-demand-page .wpcf7,
.elementor .pro-demand-page .wpcf7-form{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Le formulaire professionnel reprend le rendu de .form-card. */
.elementor .pro-demand-page .pro-cf7-form{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1.25rem !important;
  margin:0 !important;
  padding:2.5rem !important;
  background:var(--card,#fff) !important;
  border:1px solid var(--line-warm,#e1e2e7) !important;
  border-top:3px solid var(--accent) !important;
  border-radius:var(--r-lg,18px) !important;
  box-shadow:var(--sh-sm,0 24px 70px rgba(9,12,30,.055)) !important;
  color:var(--text,#111427) !important;
}

/* Nettoyage des balises automatiques de CF7. */
.elementor .pro-demand-page .pro-cf7-form p{
  margin:0 !important;
  padding:0 !important;
}

.elementor .pro-demand-page .pro-cf7-form br{
  display:none !important;
}

.elementor .pro-demand-page .pro-field > p,
.elementor .pro-demand-page .pro-submit-wrap > p,
.elementor .pro-demand-page .pro-consent > p{
  display:contents !important;
}

/* Lignes à deux colonnes. */
.elementor .pro-demand-page .pro-form-row{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:1.15rem !important;
  margin:0 !important;
}

/* Champs. */
.elementor .pro-demand-page .pro-field{
  width:100% !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:.55rem !important;
  margin:0 !important;
  padding:0 !important;
}

.elementor .pro-demand-page .pro-field label,
.elementor .pro-demand-page .pro-label{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--text,#111427) !important;
  font-family:var(--sans) !important;
  font-size:.82rem !important;
  line-height:1.4 !important;
  font-weight:700 !important;
}

.elementor .pro-demand-page .pro-required{
  margin-left:.18rem !important;
  color: var(--red-500) !important;
  font-weight:700;
}

.elementor .pro-demand-page .wpcf7-form-control-wrap{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* Inputs, select et textarea. */
.elementor .pro-demand-page .pro-control,
.elementor .pro-demand-page input.wpcf7-text,
.elementor .pro-demand-page input.wpcf7-email,
.elementor .pro-demand-page input.wpcf7-tel,
.elementor .pro-demand-page select.wpcf7-select,
.elementor .pro-demand-page textarea.wpcf7-textarea{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  margin:0 !important;
  border:1px solid var(--line-warm,#dfe1e6) !important;
  border-radius:7px !important;
  outline:none !important;
  background:#fff !important;
  color:var(--text,#111427) !important;
  font-family:var(--sans) !important;
  font-size:1rem !important;
  line-height:1.5 !important;
  box-shadow:none !important;
  transition:border-color .25s ease,box-shadow .25s ease,background-color .25s ease !important;
}

.elementor .pro-demand-page input.wpcf7-text,
.elementor .pro-demand-page input.wpcf7-email,
.elementor .pro-demand-page input.wpcf7-tel,
.elementor .pro-demand-page select.wpcf7-select{
  min-height:52px !important;
  padding:.8rem 1rem !important;
}

.elementor .pro-demand-page select.wpcf7-select{
  padding-right:2.6rem !important;
}

.elementor .pro-demand-page textarea.wpcf7-textarea{
  display:block !important;
  min-height:150px !important;
  height:150px !important;
  padding:1rem !important;
  resize:vertical !important;
}

.elementor .pro-demand-page input::placeholder,
.elementor .pro-demand-page textarea::placeholder{
  color:#8e929d !important;
  opacity:1 !important;
}

.elementor .pro-demand-page input:focus,
.elementor .pro-demand-page select:focus,
.elementor .pro-demand-page textarea:focus{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent) !important;
}

/* Champs techniques ou antispam invisibles. */
.elementor .pro-demand-page .fit-the-fullspace,
.elementor .pro-demand-page input[aria-hidden="true"],
.elementor .pro-demand-page .akismet-fields-container{
  display:none !important;
}

/* Consentement RGPD. */
.elementor .pro-demand-page .pro-consent{
  width:100% !important;
  margin:.15rem 0 0 !important;
}

.elementor .pro-demand-page .pro-consent .wpcf7-form-control-wrap,
.elementor .pro-demand-page .pro-consent .wpcf7-acceptance{
  width:100% !important;
  display:block !important;
}

.elementor .pro-demand-page .pro-consent .wpcf7-list-item{
  width:100% !important;
  margin:0 !important;
}

.elementor .pro-demand-page .pro-consent .wpcf7-list-item label{
  width:100% !important;
  display:flex !important;
  align-items:flex-start !important;
  gap:.75rem !important;
  margin:0 !important;
  cursor:pointer !important;
}

.elementor .pro-demand-page .pro-consent input[type="checkbox"]{
  flex:0 0 18px !important;
  width:18px !important;
  height:18px !important;
  min-height:0 !important;
  margin:.15rem 0 0 !important;
  padding:0 !important;
  accent-color:var(--accent) !important;
}

.elementor .pro-demand-page .pro-consent .wpcf7-list-item-label{
  color:var(--text-soft,#565d72) !important;
  font-family:var(--sans) !important;
  font-size:.86rem !important;
  line-height:1.6 !important;
  font-weight:400 !important;
}

/* Bouton d'envoi. */
.elementor .pro-demand-page .pro-submit-wrap{
  position:relative !important;
  width:100% !important;
  margin:.15rem 0 0 !important;
}

.elementor .pro-demand-page .pro-submit,
.elementor .pro-demand-page input.wpcf7-submit{
  width:100% !important;
  min-height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:.75rem !important;
  margin:0 !important;
  padding:1rem 1.5rem !important;
  border:1px solid var(--accent) !important;
  border-radius:7px !important;
  background:var(--accent) !important;
  color:#fff !important;
  font-family:var(--sans) !important;
  font-size:.95rem !important;
  line-height:1 !important;
  font-weight:700 !important;
  cursor:pointer !important;
  transition:transform .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease !important;
}

.elementor .pro-demand-page .pro-submit:hover,
.elementor .pro-demand-page input.wpcf7-submit:hover{
  transform:translateY(-2px) !important;
  background:var(--accent-2) !important;
  border-color:var(--accent-2) !important;
  box-shadow:0 18px 34px color-mix(in srgb,var(--accent) 24%,transparent) !important;
}

/* Validation CF7. */
.elementor .pro-demand-page .wpcf7-not-valid{
  border-color:#c93b18 !important;
}

.elementor .pro-demand-page .wpcf7-not-valid-tip{
  display:block !important;
  margin-top:.35rem !important;
  color:#c93b18 !important;
  font-size:.75rem !important;
  line-height:1.4 !important;
}

.elementor .pro-demand-page .wpcf7-response-output{
  margin:1.2rem 0 0 !important;
  padding:1rem 1.1rem !important;
  border-radius:var(--r-sm,8px) !important;
  font-size:.84rem !important;
  line-height:1.55 !important;
}

.elementor .pro-demand-page form.sent .wpcf7-response-output{
  border:1px solid var(--accent) !important;
  background:color-mix(in srgb,var(--accent) 8%,#fff) !important;
  color:var(--text) !important;
}

.elementor .pro-demand-page form.invalid .wpcf7-response-output,
.elementor .pro-demand-page form.unaccepted .wpcf7-response-output,
.elementor .pro-demand-page form.payment-required .wpcf7-response-output,
.elementor .pro-demand-page form.failed .wpcf7-response-output,
.elementor .pro-demand-page form.spam .wpcf7-response-output{
  border:1px solid #c93b18 !important;
  background:color-mix(in srgb,#c93b18 7%,#fff) !important;
  color:#c93b18 !important;
}

.elementor .pro-demand-page .wpcf7-spinner{
  position:absolute !important;
  right:1rem !important;
  top:50% !important;
  margin:0 !important;
  transform:translateY(-50%) !important;
}

/* Colonne droite : réutilise .form-side. */
.elementor .pro-demand-page .pro-login-side,
.elementor .pro-demand-page .e-con.pro-login-side{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
  margin:0 !important;
  padding:0 !important;
}

.elementor .pro-demand-page .pro-login-side > .e-con-inner{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:1rem !important;
}

/* Carte Espace Pro : variante bleue de .side-box. */
.elementor .pro-demand-page .pro-login-card{
  position:relative !important;
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:1.9rem !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 100% 0,rgba(142,164,223,.20),transparent 48%),
    linear-gradient(145deg,#10183c 0%,#1c2a69 100%) !important;
  border:1px solid rgba(142,164,223,.28) !important;
  border-left:3px solid var(--accent-soft) !important;
  border-radius:var(--r-md,14px) !important;
  box-shadow:0 24px 55px rgba(15,24,62,.16) !important;
  color:#fff !important;
}

.elementor .pro-demand-page .pro-login-card .elementor-widget,
.elementor .pro-demand-page .pro-login-card .elementor-widget-container{
  width:100% !important;
  margin:0 !important;
}

.elementor .pro-demand-page .pro-login-card h3,
.elementor .pro-demand-page .pro-login-card h4{
  margin:0 0 .65rem !important;
  color:#fff !important;
}

.elementor .pro-demand-page .pro-login-card p{
  margin:0 0 1.35rem !important;
  color:rgba(255,255,255,.74) !important;
  font-size:.86rem !important;
  line-height:1.65 !important;
}

.elementor .pro-demand-page .pro-login-card .btn,
.elementor .pro-demand-page .pro-login-button{
  width:100% !important;
  justify-content:center !important;
  --bg:var(--accent-soft);
}

/* Carte d'information simple dans la colonne droite. */
.elementor .pro-demand-page .pro-info-card{
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:1.6rem !important;
  background:var(--card,#fff) !important;
  border:1px solid var(--line-warm,#e1e2e7) !important;
  border-left:3px solid var(--accent) !important;
  border-radius:var(--r-md,14px) !important;
}

.elementor .pro-demand-page .pro-info-card h4{
  margin:0 0 .5rem !important;
}

.elementor .pro-demand-page .pro-info-card p{
  margin:0 !important;
  color:var(--text-soft,#565d72) !important;
  font-size:.85rem !important;
  line-height:1.6 !important;
}

/* Hero professionnel : conserve .xhero, .xhero-in, .xhero-badge et .xhero-lead. */
.elementor .pro-demand-page .pro-demand-hero-in,
.elementor .pro-demand-page .pro-demand-hero-in > .e-con-inner{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}

.elementor .pro-demand-page .pro-demand-hero-in .elementor-widget,
.elementor .pro-demand-page .pro-demand-hero-in .elementor-widget-container{
  width:100% !important;
  margin:0 !important;
}

.elementor .pro-demand-page .pro-demand-hero-in .xhero-badge{
  width:max-content !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.elementor .pro-demand-page .pro-demand-hero-in h1,
.elementor .pro-demand-page .pro-demand-hero-in .display{
  max-width:850px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

.elementor .pro-demand-page .pro-demand-hero-in .xhero-lead{
  max-width:720px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

/* Responsive. */
@media(max-width:900px){
  .elementor .pro-demand-page .pro-demand-layout,
  .elementor .pro-demand-page .e-con.pro-demand-layout,
  .elementor .pro-demand-page .pro-demand-layout > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:1.5rem !important;
  }

  .elementor .pro-demand-page .pro-login-side,
  .elementor .pro-demand-page .pro-login-side > .e-con-inner{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:680px){
  .elementor .pro-demand-page .pro-form-row{
    grid-template-columns:1fr !important;
    gap:1.15rem !important;
  }

  .elementor .pro-demand-page .pro-cf7-form{
    padding:1.5rem !important;
  }

  .elementor .pro-demand-page .pro-login-side,
  .elementor .pro-demand-page .pro-login-side > .e-con-inner{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:480px){
  .elementor .pro-demand-page .pro-cf7-form{
    padding:1.2rem !important;
    border-radius:14px !important;
  }

  .elementor .pro-demand-page .pro-login-card{
    padding:1.45rem !important;
  }
}

/* ============================================================
   PRESSE & ACTUALITÉS — archive WordPress fidèle à la maquette
   Fichier PHP associé : category-presse-actualites-energie.php
   ============================================================ */
.press-hero{padding-bottom:4rem}
.press-hero-in{position:relative;z-index:2;max-width:840px}
.press-eyebrow{margin-bottom:0}
.press-title{font-size:clamp(2.5rem,4.8vw,4rem)!important;color:var(--on-dark)!important;margin:1.4rem 0 1.2rem!important}
.press-lead{margin-bottom:0}
.press-archive{background:var(--paper)}
.press-archive .news-card{min-width:0}
.press-cover-link{display:block;text-decoration:none}
.press-cover-image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease-lux)}
.news-card:hover .press-cover-image{transform:scale(1.025)}
.press-cover-placeholder{display:block;width:100%;height:100%;background:radial-gradient(circle at 75% 20%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 48%),linear-gradient(145deg,var(--ink-900),var(--navy-800,#202862))}
.press-feature .news-body h2,.press-grid .news-card h2{margin:0 0 .7rem;color:var(--text);letter-spacing:-.01em}
.press-feature .news-body h2{font-size:1.9rem;line-height:1.12}
.press-grid .news-card h2{font-size:1.2rem;line-height:1.28}
.press-feature .news-body h2 a,.press-grid .news-card h2 a{color:inherit;text-decoration:none}
.press-grid{margin-top:1.6rem}
.press-newsletter{justify-content:center;align-items:flex-start;background:var(--paper-2)!important;border-style:dashed!important}
.press-newsletter .news-body{padding:2.2rem 1.8rem}
.press-pagination{margin-top:3rem}
.press-pagination .nav-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.55rem}
.press-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .8rem;border:1px solid var(--line-warm);border-radius:var(--r-sm);background:var(--card);color:var(--text-soft);font-size:.82rem;text-decoration:none;transition:border-color .3s var(--ease),color .3s var(--ease),background .3s var(--ease)}
.press-pagination .page-numbers:hover,.press-pagination .page-numbers.current{border-color:var(--accent);background:var(--accent);color:#fff}
.press-empty{text-align:center;padding:3rem 1rem}
.press-empty h2{margin-bottom:.8rem;color:var(--text)}
.press-empty p{color:var(--text-soft)}

@media(max-width:760px){
  .press-feature .news-body h2{font-size:1.45rem}
}

@media(max-width:600px){
  .press-hero-in{padding-left:1rem;padding-right:1rem}
  .press-title{font-size:clamp(2.2rem,10vw,3rem)!important}
}

/* ============================================================
   ARTICLE PRESSE — lecture éditoriale premium et dynamique
   Fichier PHP associé : single.php
   ============================================================ */
.press-single{background:var(--paper);color:var(--text)}
.press-single-hero{position:relative;overflow:hidden;padding:9.5rem 0 5.4rem;background:linear-gradient(145deg,#070914 0%,#11152c 58%,#1d2349 100%);color:var(--on-dark)}
.press-single-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 52% 75% at 88% 20%,color-mix(in srgb,var(--accent) 27%,transparent),transparent 65%),radial-gradient(ellipse 55% 65% at 6% 100%,rgba(174,182,196,.16),transparent 68%)}
.press-single-hero-in{position:relative;z-index:2;max-width:980px;text-align:center}
.press-single-kicker{display:inline-flex;align-items:center;gap:.65rem;margin-bottom:1.4rem;color:var(--accent-soft);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.press-single-kicker .mark{width:28px;height:1px;background:currentColor}
.press-single-hero h1{max-width:960px;margin:0 auto 1.5rem;color:#fff;font-size:clamp(2.45rem,5vw,4.5rem);line-height:1.03;letter-spacing:-.032em;text-wrap:balance}
.press-single-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.7rem;color:var(--on-dark-soft);font-size:.78rem;letter-spacing:.04em}
.press-single-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--accent-soft)}
.press-single-shell{position:relative;padding-bottom:clamp(4.5rem,8vw,7rem)}
.press-single-cover{position:relative;z-index:3;width:100%;margin:-2.5rem auto 4.2rem;overflow:hidden;border-radius:28px;box-shadow:0 35px 85px rgba(7,9,18,.22);background:var(--ink-900);aspect-ratio:16/8.3}
.press-single-cover-image{display:block;width:100%;height:100%;object-fit:cover}
.press-single-layout{display:grid;grid-template-columns:220px minmax(0,760px);justify-content:center;gap:4.2rem;align-items:start}
.press-single-aside{position:sticky;top:104px;display:flex;flex-direction:column;gap:1.1rem}
.press-back-link{display:inline-flex;align-items:center;gap:.6rem;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.press-back-link svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.press-back-link:hover svg{transform:translateX(-4px)}
.press-aside-card{padding:1.2rem 1.25rem;border:1px solid var(--line-warm);border-left:3px solid var(--accent);border-radius:var(--r-md);background:var(--card)}
.press-aside-label{display:block;margin-bottom:.35rem;color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.press-aside-card a{color:var(--text);font-size:.88rem;font-weight:700;text-decoration:none}
.press-single-content{min-width:0;color:var(--text-soft);font-size:1.06rem;line-height:1.88}
.press-single-content>p:first-of-type{font-size:1.2rem;line-height:1.75;color:var(--text);font-weight:500}
.press-single-content p{margin:0 0 1.35rem}
.press-single-content h2{margin:2.8rem 0 1rem;color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.18;letter-spacing:-.018em}
.press-single-content h3{margin:2.2rem 0 .8rem;color:var(--text);font-size:1.35rem;line-height:1.3}
.press-single-content strong{color:var(--text);font-weight:700}
.press-single-content a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.press-single-content ul,.press-single-content ol{margin:0 0 1.6rem;padding-left:1.35rem}
.press-single-content li{margin:.45rem 0;padding-left:.25rem}
.press-single-content blockquote{position:relative;margin:2.4rem 0;padding:1.6rem 1.8rem 1.6rem 2rem;border-left:3px solid var(--accent);background:var(--paper-2);color:var(--text);font-family:var(--serif);font-size:1.25rem;line-height:1.55}
.press-single-content figure,.press-single-content .wp-block-image{margin:2.4rem 0}
.press-single-content img{height:auto;border-radius:18px}
.press-single-content figcaption{margin-top:.65rem;color:var(--muted);font-size:.75rem;text-align:center}
.press-related-section{background:var(--paper-2)}
.press-related-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.2rem}
.press-related-head .sec-eyebrow{margin-bottom:1rem}
.press-category-button{flex:0 0 auto}
.press-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.press-related-card h3{font-size:1.2rem;line-height:1.28;margin-bottom:.65rem}
.press-related-card h3 a{color:inherit;text-decoration:none}

@media(max-width:980px){
  .press-single-layout{grid-template-columns:1fr;gap:2rem;max-width:780px;margin:0 auto}
  .press-single-aside{position:static;display:grid;grid-template-columns:auto 1fr;align-items:center}
  .press-aside-card{justify-self:end;max-width:300px}
  .press-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .press-single-hero{padding:7.4rem 0 4.5rem}
  .press-single-hero h1{font-size:clamp(2.15rem,10vw,3.15rem)}
  .press-single-cover{margin-top:-1.8rem;margin-bottom:2.8rem;border-radius:18px;aspect-ratio:16/10}
  .press-single-aside{display:flex;align-items:stretch}
  .press-aside-card{justify-self:auto;max-width:none}
  .press-single-content{font-size:1rem;line-height:1.78}
  .press-single-content>p:first-of-type{font-size:1.1rem}
  .press-related-head{align-items:flex-start;flex-direction:column}
  .press-related-grid{grid-template-columns:1fr}
  .press-category-button{width:100%;justify-content:center}
}
