/* MGR Group — feuille de style unique (site + pages légales) */
@font-face{font-family:'Instrument Sans';src:url('assets/fonts/InstrumentSans.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('assets/fonts/InstrumentSans-Italic.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('assets/fonts/InstrumentSerif-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{
  --ink:#0d0d0d;
  --white:#fff;
  --bg:#fff;
  --soft:#ffffff;
  --soft-2:#f1f1f1;
  --line:#e4e4e4;
  --muted:#5d6166;
  --muted-dark:#a9a9a9;
  --gold:#f8c068;          /* or MGR (B07A18) */
  --gold-hover:#ffd089;
  --gold-text:#0d0d0d;     /* une seule couleur : l'or sert aux surfaces, le texte reste noir */
  --gold-soft:#f1f1f1;     /* plus de teinte jaune pâle : gris très clair */
  --radius:14px;
  --radius-sm:10px;
  --wrap:1320px;
  --gutter:clamp(16px,4vw,48px);
  --header-h:84px;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  font-family:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--ink);
  background:var(--bg);
  scroll-padding-top:calc(var(--header-h) + 12px);
  -webkit-text-size-adjust:100%;
}
@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-size:17px;line-height:1.6;background:var(--bg)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,p,figure,ul,ol,dl{margin:0}
ul,ol{padding:0;list-style:none}
:focus,:focus-visible{outline:none}
[hidden]{display:none!important}
.wrap{width:100%;max-width:calc(var(--wrap) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
/* Typographie (façon Renovex : titres gras, pastille carrée or devant les labels) */
h1,h2{font-weight:700;letter-spacing:-.03em;line-height:1.08}
h1{font-size:clamp(40px,5.2vw,74px)}
h2{font-size:clamp(30px,3.6vw,50px)}
h3{font-weight:600;font-size:22px;line-height:1.25;letter-spacing:-.01em}
h1 em,h2 em{font-style:normal}
mark{background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 0/100% 100%;color:var(--ink);padding:0 .12em;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.label{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:10px;background:var(--gold);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:18px}
.label::before{content:'';flex:none;width:16px;height:16px;background:var(--ico) center/contain no-repeat}
[data-ico=home]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E")}
[data-ico=users]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E")}
[data-ico=tools]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z'/%3E%3C/svg%3E")}
[data-ico=layers]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z'/%3E%3C/svg%3E")}
[data-ico=calendar]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 002 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z'/%3E%3C/svg%3E")}
[data-ico=list]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M3 5h2v2H3zm0 6h2v2H3zm0 6h2v2H3zm4-12h14v2H7zm0 6h14v2H7zm0 6h14v2H7z'/%3E%3C/svg%3E")}
[data-ico=image]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'/%3E%3C/svg%3E")}
[data-ico=star]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E")}
[data-ico=help]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z'/%3E%3C/svg%3E")}
[data-ico=arrow]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z'/%3E%3C/svg%3E")}
[data-ico=compare]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E")}
[data-ico=camera]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 15.2a3.2 3.2 0 100-6.4 3.2 3.2 0 000 6.4zM9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3C/svg%3E")}
[data-ico=phone]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E")}
[data-ico=pin]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 010-5 2.5 2.5 0 010 5z'/%3E%3C/svg%3E")}
[data-ico=euro]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M15 18.5c-2.51 0-4.68-1.42-5.76-3.5H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24C10.32 6.92 12.5 5.5 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3C19.41 3.87 17.3 3 15 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06c-.04.33-.06.66-.06 1s.02.67.06 1H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z'/%3E%3C/svg%3E")}
[data-ico=calc]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM13.03 7.06L14.09 6l1.41 1.41L16.91 6l1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.41-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.41zM6.25 7.72h5v1.5h-5v-1.5zM11.5 16h-2v2H8v-2H6v-1.5h2v-2h1.5v2h2V16zm6.5 1.25h-5v-1.5h5v1.5zm0-2.5h-5v-1.5h5v1.5z'/%3E%3C/svg%3E")}
[data-ico=brush]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2 2.21 0 4-1.79 4-4 0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34a.996.996 0 00-1.41 0L9 12.25 11.75 15l8.96-8.96a.996.996 0 000-1.41z'/%3E%3C/svg%3E")}
[data-ico=user]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E")}
[data-ico=briefcase]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z'/%3E%3C/svg%3E")}
[data-ico=warning]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z'/%3E%3C/svg%3E")}
[data-ico=file]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E")}
[data-ico=shield]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4z'/%3E%3C/svg%3E")}
[data-ico=cookie]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M12 2a10 10 0 1010 10 3 3 0 01-3-3 3 3 0 01-3-3 3 3 0 01-3-3 3 3 0 01-1-1zm-4 7a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm2 6a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5-1a1.5 1.5 0 110 3 1.5 1.5 0 010-3z'/%3E%3C/svg%3E")}
[data-ico=building]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230d0d0d' d='M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z'/%3E%3C/svg%3E")}

.lead{font-size:clamp(17px,1.4vw,20px);color:var(--muted);max-width:54ch}
/* Boutons (rectangle arrondi, flèche dans un carré sombre, façon Renovex) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:10px 24px;border-radius:10px;border:1.5px solid transparent;font-weight:600;font-size:16px;line-height:1.2;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.btn .arrow{display:grid;place-items:center;width:34px;height:34px;margin:-8px -14px -8px 2px;border-radius:7px;background:var(--ink);color:var(--gold);font-size:17px;line-height:1;transition:transform .2s}
.btn:hover .arrow{transform:translateX(3px)}
.btn-dark{background:var(--gold);color:var(--ink);transition:transform .25s cubic-bezier(.2,.7,.2,1),background .2s}
.btn-dark:hover{background:var(--gold-hover);transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--ink);transition:transform .25s cubic-bezier(.2,.7,.2,1),background .2s}
.btn-gold:hover{background:var(--gold-hover);transform:translateY(-2px)}
.btn-line{border-color:var(--ink);color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 100%/100% 0;transition:background-size .35s cubic-bezier(.2,.7,.2,1),border-color .35s,color .2s}
.btn-line:hover{background-size:100% 100%;border-color:var(--gold);color:var(--ink)}
.btn-glass{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);color:var(--white);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-glass:hover{background:var(--white);color:var(--ink)}
.btn-sm{min-height:46px;padding:8px 18px;font-size:15px;border-radius:8px}
.btn-sm .arrow{width:30px;height:30px;margin-right:-10px}
/* En-tête collant */
.header{--hpad:min(22px,calc(var(--gutter) - 8px));position:sticky;top:12px;z-index:50;width:min(100% - 2 * var(--gutter) + 2 * var(--hpad),var(--wrap) + 2 * var(--hpad));margin:12px auto 0;border-radius:18px;background:var(--white)}
.header .header-inner{display:flex;align-items:center;gap:24px;height:calc(var(--header-h) - 14px);max-width:none;padding-inline:var(--hpad)}
.logo img{display:block;height:46px;width:auto;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.logo:hover img{transform:scale(1.04)}
.nav{display:contents}
.nav-links{display:flex;gap:2px;margin:0 auto;padding:0;list-style:none}
.nav-links a{position:relative;display:block;padding:10px 14px;border-radius:8px;font-weight:500;font-size:15.5px;transition:background .2s,color .2s}
.nav-links a:hover{background:var(--soft-2)}
.nav-links a::after{content:'';position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-links a:hover::after,.nav-links a.is-active::after,.nav-links a[aria-current=page]::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:8px}
.hdr-icon{width:44px;height:44px;flex:none;border-radius:10px;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 100%/100% 0;transition:background-size .35s cubic-bezier(.2,.7,.2,1),border-color .35s,transform .25s}
.hdr-icon:hover{background-size:100% 100%;border-color:var(--gold);transform:translateY(-2px)}
.hdr-icon svg{width:18px;height:18px;fill:currentColor}
.btn-client{gap:8px;padding-left:18px}
.btn-client{border-color:var(--line)}
.btn-client svg{width:18px;height:18px;fill:currentColor}
.nav-contact{display:none}
.header-quick{display:none;align-items:center;gap:8px;margin-left:auto}
.menu-toggle{width:44px;height:44px;flex:none;border:1.5px solid var(--line);border-radius:10px;background:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.menu-toggle span{display:block;width:18px;height:2px;background:var(--ink);transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu-open{overflow:hidden}
/* En-tête : écrans moyens et menu mobile */
@media(max-width:1280px){
  .nav-links{gap:0}
  .nav-links a{padding:10px 11px;font-size:15px}
  .nav-actions .hdr-icon-line{display:none}
}
@media(max-width:1100px){
  .header-quick{display:flex}
  .nav{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;max-height:calc(100svh - var(--header-h) - 24px);overflow:auto;flex-direction:column;padding:8px 24px 32px;background:var(--white);border:1px solid var(--line);border-radius:18px}
  .nav.is-open{display:flex}
  .nav-links{flex-direction:column;margin:0}
  .nav-links a{padding:16px 0;border-radius:0;border-bottom:1px solid var(--line);font-size:24px;letter-spacing:-.02em}
  .nav-links a:hover{background:none}
  .nav-links a::after{display:none}
  .nav-links a.is-active{color:var(--gold-text)}
  .nav-actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:24px}
  .nav-actions .hdr-icon{display:none}
  .nav-actions .btn{min-height:54px;font-size:16px}
  .nav-contact{display:grid;gap:14px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:16px;font-weight:500}
  .nav-contact a{display:flex;align-items:center;gap:12px}
  .nav-contact svg{width:20px;height:20px;flex:none;fill:currentColor}
}
/* Accueil clair façon Renovex : label, titre, deux atouts, boutons ; le patron détouré à droite */
.hero{position:relative;isolation:isolate;margin-top:calc(-1 * var(--header-h));padding-top:var(--header-h);background:var(--soft);overflow:hidden}
.hero-inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:end;padding-top:clamp(20px,3vw,40px)}
.hero-content{align-self:center;padding-block:clamp(24px,3vw,40px) clamp(40px,6vw,88px)}
.hero h1{max-width:none}
.hero h1 .w:has(.rotator),.contact-head h1 .w:has(.rotator),h2 .w:has(.rotator){display:block;width:100%}
.head-center h2 .rotator em{justify-self:center}
.hero-text{margin-top:22px;font-size:clamp(17px,1.3vw,19px);color:var(--muted);max-width:52ch;line-height:1.6}
.hero-feats,.feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hero-feats{margin-top:30px;max-width:640px}
.feat{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s}
.feat:hover{transform:translateY(-3px)}
.feat .ico svg{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.feat:hover .ico svg{transform:scale(1.12) rotate(-6deg)}
.feat .ico{flex:none;width:50px;height:50px;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.feat .ico svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.feat b{font-size:17px;font-weight:600;line-height:1.3}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:34px}
.btn-play{display:inline-flex;align-items:center;gap:14px;font-weight:600;font-size:16px}
.btn-play i{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--ink);font-style:normal;font-size:18px;transition:background .2s,border-color .2s,transform .2s}
.btn-play:hover i{background:var(--gold);border-color:var(--gold);transform:rotate(45deg)}
.hero-visual{position:relative;align-self:end;width:100%;max-width:780px;justify-self:end;padding:28px 5% 32px}
.hero-visual::before{content:'';position:absolute;inset:-2% 2% 0;background:var(--gold);clip-path:polygon(50% 0,100% 38%,100% 100%,0 100%,0 38%);z-index:0}
.hero-portrait{position:relative;z-index:1;margin:0}
.hero-portrait img{display:block;width:100%;height:auto;-webkit-mask-image:linear-gradient(#000 80%,rgba(0,0,0,.35) 94%,transparent 100%);mask-image:linear-gradient(#000 80%,rgba(0,0,0,.35) 94%,transparent 100%)}
.portrait-chip{position:absolute;left:0;bottom:clamp(40px,6vw,80px);display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--white);color:var(--ink);border-radius:var(--radius-sm);animation:float 5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.portrait-chip i{flex:none;width:10px;height:10px;background:var(--gold)}
.portrait-chip b{display:block;font-weight:600;font-size:15px}
.portrait-chip span{display:block;font-size:13px;color:var(--muted)}
.hero h1 .w>.rotator,.contact-head h1 .w>.rotator,h2 .w>.rotator{display:grid;width:100%;min-width:0;overflow:hidden;padding:.08em 0;margin:-.08em 0;transform:none;animation:none}
.rotator em{grid-area:1/1;justify-self:start;white-space:nowrap;background:var(--gold);padding:0 .14em;border-radius:8px;transform:translateY(110%);opacity:0;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .4s}
.rotator em.is-active{transform:none;opacity:1}
.rotator em.is-out{transform:translateY(-110%);opacity:0}
.no-js .rotator em:not(:first-child){display:none}
.check{color:var(--gold-text);font-weight:700}
/* Lignes et rideaux de révélation façon JDavis */
.rule{height:1px;background:var(--ink);margin-bottom:clamp(28px,4vw,44px);transform-origin:left}
.faq-rule{grid-column:1 / -1;margin-bottom:0}
.curtain{position:relative;overflow:hidden;border-radius:var(--radius)}
.curtain::after{content:'';position:absolute;inset:0;background:var(--gold);transform-origin:right}
.curtain img{width:100%;height:100%;object-fit:cover}
/* Sections */
.section{padding-block:clamp(52px,6vw,84px);content-visibility:auto;contain-intrinsic-size:auto 700px}
.soft{background:var(--soft)}
.dark{background:var(--ink);color:var(--white)}
.dark .lead{color:var(--muted-dark)}
.dark .label{color:var(--gold)}
.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px 48px;margin-bottom:32px}
.head .lead{max-width:46ch}
/* Qui sommes-nous façon Renovex : photo + photo en débord + encadré or, texte, atouts, liste, bouton */
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(36px,5vw,80px);align-items:center}
.about-media{position:relative;padding:5% 16% 10% 0}
.about-main{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/4.4}
.about-main img,.about-over img{width:100%;height:100%;object-fit:cover}
.about-over{position:absolute;right:0;top:0;width:60%;margin:0;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;border:8px solid var(--white);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.about-media:hover .about-over{transform:translate(6px,-8px) rotate(1.5deg)}
.about-main img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.about-media:hover .about-main img{transform:scale(1.04)}
.about-stat{position:absolute;left:22px;bottom:calc(10% + 22px);display:flex;align-items:center;gap:14px;padding:18px 22px;background:var(--gold);border-radius:var(--radius-sm)}
.about-stat strong{font-size:44px;font-weight:700;letter-spacing:-.04em;line-height:1}
.about-stat strong i{font-style:normal;font-size:.6em;vertical-align:top}
.about-stat span{font-size:14px;font-weight:600;line-height:1.3}
.about-text h2{margin-bottom:16px}
.about-text .big{font-size:clamp(17px,1.3vw,19px);line-height:1.6;margin-bottom:24px;max-width:54ch}
.checks{display:grid;gap:10px;margin-top:22px;font-size:16px;font-weight:500}
.checks li{display:flex;align-items:center;gap:14px}
.checks li::before{content:'';flex:none;width:36px;height:36px;border-radius:50%;background:var(--gold) var(--ico) center/18px no-repeat}
.about-foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;margin-top:28px}
.who{display:flex;align-items:center;gap:12px}
.who img{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:50% 12%;background:var(--gold);transition:transform .3s}
.who:hover img{transform:rotate(-6deg) scale(1.06)}
.who b{display:block;font-weight:600}
.who span{font-size:14px;color:var(--muted)}
/* Services façon Renovex : icône carrée, titre, texte, photo en arche */
.head-center{display:grid;justify-items:center;text-align:center;margin-bottom:40px}
.head-center h2{max-width:22ch}
.head-center .lead{max-width:52ch;margin-top:16px}
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.service{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.service:hover{transform:translateY(-5px)}
.service figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.service figure img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.service:hover figure img{transform:scale(1.05)}
.service-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.service .ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gold);margin:-42px 0 12px;position:relative;border:4px solid var(--white)}
.service .ico svg{width:22px;height:22px;fill:var(--ink);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.service:hover .ico svg{transform:scale(1.12)}
.service h3{font-size:20px}
.service p{color:var(--muted);font-size:15px;line-height:1.55;margin-top:8px}
.service-more{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:16px;font-size:14px;font-weight:600}
.service-more i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);font-style:normal;font-size:13px;transition:transform .2s}
.service:hover .service-more i{transform:translateX(3px)}
.services-foot{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin-top:32px;font-size:16px;color:var(--muted)}
.services-foot .dot{width:8px;height:8px;background:var(--gold)}
.services-foot a{font-weight:600;color:var(--ink);border-bottom:2px solid var(--gold)}
/* Visite gratuite façon Build Team */
.visit{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:stretch}
.visit-main h2{margin-bottom:18px}
.days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:32px}
.day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:22px 12px 16px;background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);text-align:center;transition:border-color .2s,transform .2s}
.day:hover{transform:translateY(-4px)}
.day:hover .btn{background:var(--gold-hover)}
.day small{font-size:15px;color:var(--muted)}
.day strong{font-size:34px;font-weight:500;letter-spacing:-.03em;line-height:1.1}
.day .btn{margin-top:14px;width:100%;pointer-events:none}
.day[aria-pressed=true]{border-color:var(--gold);background:var(--gold);color:var(--ink)}
.day[aria-pressed=true] small{color:var(--ink)}
.day[aria-pressed=true] .btn{background:var(--ink);color:var(--white)}
.why{background:var(--white);border-radius:var(--radius);padding:32px;border:1.5px solid var(--line)}
.why li{transition:transform .25s}
.why li:hover{transform:translateX(4px)}
.why h3{margin-bottom:18px}
.why li{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.why li:first-of-type{border-top:0}
.why li b{font-weight:600}
.why p{font-size:15px;color:var(--muted)}
/* Réalisations façon Renovex : photo pleine carte, pastille, titre en bas */
.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.project{position:relative;display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/4.2;isolation:isolate;color:var(--white)}
.project img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.project:hover img{transform:scale(1.04)}
.project::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.74) 100%)}
.project .tag{position:absolute;z-index:2;left:18px;top:18px;padding:7px 12px;border-radius:10px;background:var(--gold);color:var(--ink);border:1px solid rgba(255,255,255,.4);font-size:13px;font-weight:500}
.project-body{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:22px}
.project-body small{display:block;font-size:13px;opacity:.85;margin-bottom:6px}
.project-body h2,.project-body h3{font-size:21px;color:var(--white)}
.project .more{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;font-weight:600}
.project .more i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);font-style:normal;font-size:13px;transition:transform .2s}
.project:hover .more i{transform:translateX(3px)}
.projects-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}
.note{font-size:15px;color:var(--muted)}
/* Méthode façon Renovex : grands numéros or et cartes en quinconce */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:start}
.step{display:flex;flex-direction:column;gap:14px}
.step:nth-child(even){flex-direction:column-reverse}
.step .num{display:grid;place-items:center;width:64px;height:64px;margin-inline:auto;border-radius:50%;background:var(--gold);color:var(--white);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1}
.step-card{display:grid;justify-items:center;gap:12px;padding:28px 22px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);text-align:center;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .3s}
.step:hover .step-card{transform:translateY(-4px)}
.step .num{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.step:hover .num{transform:scale(1.1)}
.step-card .ico{width:52px;height:52px;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.step-card .ico svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.step-card h3{font-size:19px}
.step-card p{color:var(--muted);font-size:15px;line-height:1.5}
/* FAQ : questions en cartes blanches */
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,96px)}
.faq-aside .lead{margin:20px 0 28px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:0 22px;margin-bottom:12px}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;font-size:18px;font-weight:600;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:8px;background:var(--soft-2);font-size:22px;font-weight:400;transition:transform .2s,background .2s}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--gold)}
.faq details p{color:var(--muted);padding-bottom:22px;max-width:62ch}
.faq .faq-body{overflow:hidden}
.faq .faq-body p{transform:translateY(-6px);opacity:0;transition:transform .4s cubic-bezier(.2,.7,.2,1) .1s,opacity .35s .1s}
.faq details[open] .faq-body p{transform:none;opacity:1}
/* Carte satellite : tuiles Esri assemblées sans bibliothèque */
.map-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:clamp(32px,6vw,96px);align-items:center}
.map-text h2{margin-bottom:18px}
.map-text .lead{margin-bottom:24px}
.map-facts{list-style:none;padding:0;margin:0 0 28px;display:grid}
.map-facts li{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:16px}
.map-facts li:last-child{border-bottom:1px solid var(--line)}
.map-facts b{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.map-facts a{font-weight:500}
.map-frame{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius);background:var(--soft-2);isolation:isolate}
.map-tiles{position:absolute;inset:0;overflow:hidden}
.map-tiles img{position:absolute;width:256px;height:256px;opacity:0;transition:opacity .6s}
.map-tiles img.is-ready{opacity:1}
.map-tiles::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px var(--line);border-radius:inherit;pointer-events:none}
.map-pin{position:absolute;left:50%;top:50%;width:0;height:0;z-index:2}
.map-pin i{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;background:var(--gold);border:3px solid var(--ink)}
.map-pin span{position:absolute;left:-28px;top:-28px;width:56px;height:56px;border-radius:50%;border:2px solid var(--gold);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.4);opacity:0}}
.map-zoom{position:absolute;z-index:3;right:14px;top:14px;display:grid;gap:6px}
.map-zoom button{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--white);font-size:22px;font-weight:500;display:grid;place-items:center}
.map-zoom button:hover{background:var(--gold)}
.map-credit{position:absolute;z-index:3;right:10px;bottom:8px;margin:0;font-size:11px;color:var(--muted);background:rgba(255,255,255,.85);padding:2px 7px;border-radius:5px}
/* Écran de chargement : le logo se recompose */
.loader{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:var(--white)}
.is-loading .loader{display:flex}
.is-loading body{overflow:hidden}
.loader-logo{position:relative;width:min(62vw,460px);aspect-ratio:724/385}
.loader-logo img{position:absolute;inset:0;width:100%;height:100%}
.loader-lines{clip-path:inset(0 100% 0 0);animation:draw 1.1s cubic-bezier(.2,.7,.2,1) .1s forwards}
.loader-m{opacity:0;transform:translateX(-40px);animation:piece .7s cubic-bezier(.2,.7,.2,1) .4s forwards}
.loader-g{opacity:0;transform:translateY(-40px);animation:piece .7s cubic-bezier(.2,.7,.2,1) .55s forwards}
.loader-r{opacity:0;transform:translateX(40px);animation:piece .7s cubic-bezier(.2,.7,.2,1) .7s forwards}
.loader-group{opacity:0;transform:translateY(26px);animation:piece .7s cubic-bezier(.2,.7,.2,1) .9s forwards}
@keyframes draw{to{clip-path:inset(0 0 0 0)}}
@keyframes piece{to{opacity:1;transform:none}}
/* Contact */
.contact h2 em{color:var(--gold-text)}
.contact .lead{margin-top:20px}
.contact-lines{margin-top:40px;display:grid}
.contact-lines a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);font-size:clamp(19px,1.8vw,24px)}
.contact-lines a:hover{color:var(--gold-text)}
.contact-lines small{display:block;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.quote{background:var(--white);color:var(--ink);border:1.5px solid var(--line);border-radius:18px;padding:clamp(24px,4vw,44px);box-shadow:0 30px 60px rgba(0,0,0,.06)}
.quote-head{display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}
.progress{height:4px;border-radius:4px;background:var(--soft-2);margin:14px 0 28px;overflow:hidden}
.progress span{display:block;height:100%;width:33.33%;background:var(--gold);border-radius:4px;transition:width .3s}
.quote fieldset{border:0;padding:0;margin:0;min-width:0}
.quote legend{font-size:clamp(26px,2.6vw,34px);font-weight:500;letter-spacing:-.025em;line-height:1.1;margin-bottom:22px;padding:0}
.visit-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding:8px 8px 8px 18px;background:var(--gold-soft);border-radius:10px;font-size:15px}
.visit-chip button{border:0;background:var(--white);border-radius:8px;padding:6px 14px;font-size:14px}
.types{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.types label{position:relative;cursor:pointer}
.types input{position:absolute;opacity:0;inset:0;margin:0}
.types span{display:block;padding:14px 18px;border:1.5px solid var(--line);border-radius:10px;font-weight:500;text-align:center;transition:background .15s,border-color .15s}
.types label:hover span{border-color:var(--ink)}
.types input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.field{display:block;margin-top:18px}
.field>span{display:block;font-size:15px;font-weight:500;margin-bottom:8px}
.field>span i{font-style:normal;color:var(--gold-text)}
.field input,.field select,.field textarea{display:block;width:100%;min-height:52px;padding:12px 18px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--white);font-size:16px}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 4px rgba(248,192,104,.45)}
.field [aria-invalid=true]{border-color:#c0391b}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.form-error{margin-bottom:16px;padding:12px 16px;background:#fdecea;color:#8f2a14;font-size:15px;border-radius:var(--radius-sm)}
.form-error:empty{display:none}
.summary{margin:0;font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;background:var(--soft-2);padding:20px;max-height:320px;overflow:auto;border-radius:var(--radius-sm)}
.send{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.form-help{font-size:15px;color:var(--muted);margin-top:16px}
.form-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}
.form-nav .back{background:none;border:0;font-weight:500;padding:12px 0}
.form-nav .next{margin-left:auto}
.privacy{font-size:14px;color:var(--muted);margin-top:22px}
.privacy a{text-decoration:underline}
/* Pied de page (structure Get Event / ISJ : marque + colonnes + barre basse) */
.footer{position:relative;background:var(--white);color:var(--muted);border-top:1px solid var(--line);font-size:15px;padding:clamp(48px,6vw,72px) 0 0;overflow:hidden}
.pied-bande{position:absolute;left:0;top:0;bottom:0;width:44px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:28px;background:var(--gold);writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.pied-bande span::before{content:'✦';display:inline-block;margin-bottom:14px;transform:rotate(90deg)}
.pied-bande span:first-child::before{content:none}
.footer-cta{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:24px;text-align:left;margin:0 0 clamp(40px,6vw,64px);padding:clamp(40px,6vw,72px) clamp(20px,4vw,48px) 0;background:var(--gold);border-radius:var(--radius);overflow:hidden}
.footer-cta-text{padding-bottom:clamp(40px,6vw,72px)}
.footer-cta-img{position:relative;align-self:stretch;min-height:300px}
.cta-collage{position:absolute;inset:0}
.cta-collage img{position:absolute;object-fit:cover;border:5px solid var(--white);border-radius:14px}
.cta-collage img:nth-child(1){left:4%;bottom:-8%;width:46%;aspect-ratio:3/4;transform:rotate(-6deg);z-index:1}
.cta-collage img:nth-child(2){right:6%;top:6%;width:44%;aspect-ratio:4/3;transform:rotate(5deg);z-index:2}
.cta-collage img:nth-child(3){right:22%;bottom:-6%;width:40%;aspect-ratio:1;transform:rotate(-2deg);z-index:3}
.footer-cta-img .ph{width:min(100%,360px);aspect-ratio:3/4;border:2px dashed rgba(13,13,13,.35);border-radius:16px 16px 0 0;display:grid;place-items:center;text-align:center;padding:20px;font-size:14px;color:var(--ink);background:rgba(255,255,255,.25)}
.footer-cta-img img{width:min(100%,380px);display:block}
.footer-cta .label{background:var(--white)}
.footer-cta h2{color:var(--ink);margin-bottom:14px;max-width:14ch}
.footer-cta .lead{margin:0 0 8px;color:var(--ink);max-width:48ch}
.footer-cta .hero-actions{justify-content:flex-start;margin-top:22px}
.footer-cta .btn-gold{background:var(--white);color:var(--ink)}
.footer-cta .btn-gold:hover{background:var(--gold-soft)}
.footer-cta .btn-line{border-color:var(--ink)}
.footer-cta .btn-line:hover{background:var(--white);border-color:var(--white)}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(32px,5vw,72px);align-items:start}
.pied-marque{display:grid;gap:22px;align-items:start}
.pied-tete{display:flex;align-items:center;gap:22px}
.pied-logo{display:block;width:150px;padding:0}
.pied-sep{width:1px;height:44px;background:var(--line)}
.pied-logo img{width:100%;height:auto}
.pied-texte{font-size:15.5px;line-height:1.75;max-width:44ch}
.pied-texte mark{font-weight:600;padding:.05em .3em;border-radius:.3em}
.pied-groupes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pied-groupe{counter-increment:pied}
.pied-titre{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;color:var(--ink)}
.pied-groupe summary{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600;color:var(--ink);list-style:none;cursor:default}
.pied-groupes{counter-reset:pied}
.pied-groupe summary::-webkit-details-marker{display:none}
.pied-groupe .chev{display:none;width:12px;height:12px;margin-left:auto;transition:transform .2s}
.pied-ic{width:28px;height:28px;border-radius:7px;background:var(--gold);display:grid;place-items:center;flex:none}
.pied-ic svg{width:14px;height:14px;fill:var(--ink)}
.pied-groupe ul{display:grid;gap:10px}
.pied-groupe a{position:relative;display:inline-block;transition:transform .25s,color .25s}
.pied-groupe a:hover{color:var(--ink);transform:translateX(6px)}
.pied-groupe a::before{content:'→';position:absolute;left:-18px;opacity:0;transition:opacity .25s}
.pied-groupe a:hover::before{opacity:1}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:clamp(36px,5vw,56px);padding:20px 0 24px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.footer-bottom>span:not(.credit-core){text-align:left}
.footer-legal{font-size:12.5px;color:var(--muted)}
.footer-bottom ul,.footer-bottom>div{display:flex;flex-wrap:wrap;gap:20px}
.footer-bottom a:hover{color:var(--ink)}
.footer-compact .footer-bottom{margin-top:0;justify-content:flex-start;gap:12px 40px;padding-right:200px}
@media(max-width:860px){.footer-compact .footer-bottom{padding-right:0;padding-bottom:90px}}
.socials{display:flex;gap:10px}
.social{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 100%/100% 0;transition:background-size .35s cubic-bezier(.2,.7,.2,1),border-color .35s}
.social:hover{background-size:100% 100%;border-color:var(--gold)}
.social svg{width:18px;height:18px;fill:currentColor}
.haut{position:fixed;z-index:54;right:19px;bottom:82px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--gold);color:var(--ink);border:2px solid var(--white);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .35s ease,transform .35s cubic-bezier(.2,.7,.2,1),background .2s}
.haut.is-on{opacity:1;transform:none;pointer-events:auto}
.has-cookies .haut{bottom:178px}
@media(max-width:900px){.haut{right:16px;bottom:156px}.has-cookies .haut{bottom:366px}}
.haut.is-on:hover{transform:translateY(-4px);background:var(--gold-hover)}
.haut svg{width:22px;height:22px;fill:currentColor}
/* Page client */
.page-hero{padding:clamp(40px,6vw,72px) 0 clamp(24px,3vw,40px)}
.page-hero h1{font-size:clamp(40px,5.4vw,68px);margin:4px 0 16px}
.page-hero p{color:var(--muted);max-width:54ch;font-size:17px}
.reseaux{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,420px));gap:20px;padding-bottom:clamp(48px,6vw,80px)}
.reseau{display:grid;gap:14px;padding:32px;background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);transition:border-color .2s,transform .2s}
.reseau:hover{transform:translateY(-3px)}
.reseau-ic{width:56px;height:56px;border-radius:12px;background:var(--gold);display:grid;place-items:center}
.reseau-ic svg{width:26px;height:26px;fill:var(--ink)}
.reseau h2{font-size:26px;letter-spacing:-.015em}
.reseau p{color:var(--muted);line-height:1.6}
.reseau .btn{justify-self:start;margin-top:6px}
.partage{text-align:center;max-width:640px;margin-inline:auto;padding-bottom:clamp(64px,8vw,110px)}
.partage h2{font-size:clamp(28px,3.4vw,42px);margin-bottom:12px}
.partage p{color:var(--muted);font-size:17px}
/* Signature Core Agency : la phrase, le cœur qui bat, le logo (même crédit que dccuts.be) */
.credit-core{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.credit-core a{display:inline-flex;align-items:center;color:var(--gold)}
.logo-core{height:20px;width:auto;display:block;color:var(--gold)}
.coeur-credit{width:14px;height:14px;color:var(--gold);flex:none;position:relative;top:1px;animation:battement-coeur 2.4s ease-in-out infinite}
@keyframes battement-coeur{0%,100%{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}}
/* Barre mobile */
.mobile-bar{display:none}
/* Apparition au défilement : fondu + léger déplacement, décalage des enfants, rejoué à chaque entrée */
@media(prefers-reduced-motion:no-preference){
  .js main > section:not(.hero):not(.is-visible) > .wrap > *,.js main > section:not(.hero):not(.is-visible) > *:not(.wrap),.js .footer-cta:not(.is-visible) > *,
  .js main > :is(div,nav,p,ol,ul):not(.is-visible):not(.grille) > *{opacity:0;transform:translateY(24px)}
  .js main > section > .wrap > *,.js main > section > *:not(.wrap),.js .footer-cta > *,.js main > :is(div,nav,p,ol,ul) > *{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * .09s)}
  .js main > :is(section,div,nav,p,ol,ul):not(.is-visible) > *,.js .footer-cta:not(.is-visible) > *{transition-duration:.25s;transition-delay:0s}
  .js .grille > *{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(.15s + var(--j,0) * .08s)}
  .js .panneaux.grille > .panneau{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1),flex 1.3s cubic-bezier(.76,0,.18,1);transition-delay:calc(.15s + var(--j,0) * .08s),calc(.15s + var(--j,0) * .08s),0s}
  .js .panneaux.grille.is-visible > .panneau{transition-delay:0s}
  .js .grille:not(.is-visible) > *{opacity:0;transform:translateY(20px);transition-duration:.25s;transition-delay:0s}
  .js section:not(.is-visible) h2 mark,.js .footer-cta:not(.is-visible) mark{background-size:0 100%}
  .js section h2 mark{transition:background-size .9s cubic-bezier(.2,.7,.2,1) .45s}
  .js .cookies{animation:rise .6s cubic-bezier(.2,.7,.2,1) .4s both}
  .js .ia{animation:rise .35s cubic-bezier(.2,.7,.2,1)}
  .js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
  .js .reveal.is-visible{opacity:1;transform:none}
  /* Hero : rien ne bouge tant que la page n'est pas prête (écran de chargement ou transition), puis tout entre dans l'ordre */
  .js .hero-content>*{transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(.15s + var(--j,0) * .22s)}
  .js:not(.is-ready) .hero-content>*,.js .hero:not(.is-visible) .hero-content>*{opacity:0;transform:translateY(22px);transition-duration:.25s;transition-delay:0s}
  .js:not(.is-ready) .hero-content>*{transition:none}
  .js .hero-visual::before{transform-origin:50% 100%;transition:opacity .6s ease .1s,transform 1.1s cubic-bezier(.2,.7,.2,1) .1s}
  .js:not(.is-ready) .hero-visual::before,.js .hero:not(.is-visible) .hero-visual::before{opacity:0;transform:translateY(10%) scale(.94);transition-duration:.25s;transition-delay:0s}
  .js .hero-portrait img{transition:opacity 1s ease .6s,transform 1.3s cubic-bezier(.2,.7,.2,1) .6s}
  .js:not(.is-ready) .hero-portrait img,.js .hero:not(.is-visible) .hero-portrait img{opacity:0;transform:translateY(40px);transition-duration:.25s;transition-delay:0s}
  .js .portrait-chip{transition:opacity .7s ease 1.4s,transform .7s cubic-bezier(.2,.7,.2,1) 1.4s}
  .js:not(.is-ready) .portrait-chip,.js .hero:not(.is-visible) .portrait-chip{opacity:0;transform:translateY(16px) scale(.96);transition-duration:.25s;transition-delay:0s}
  .js:not(.is-ready) .hero-visual::before,.js:not(.is-ready) .hero-portrait img,.js:not(.is-ready) .portrait-chip{transition:none}
  .js .hero-content.grille>*{transition-delay:calc(.15s + var(--j,0) * .22s)}
  .js:not(.is-ready) .hero h1 .w>span{animation-play-state:paused}
  .js .rule{transform:scaleX(0);transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}
  .js .rule.is-visible{transform:none}
  .js .curtain::after{transition:transform 1.1s cubic-bezier(.7,0,.2,1) .1s}
  .js .curtain img{transform:scale(1.12);transition:transform 1.4s cubic-bezier(.2,.7,.2,1) .1s}
  .js .curtain.is-visible::after{transform:scaleX(0)}
  .js .curtain.is-visible img{transform:none}
  .js .reveal mark{background-size:0 100%;transition:background-size .9s cubic-bezier(.2,.7,.2,1) .35s}
  .js .reveal.is-visible mark{background-size:100% 100%}
  .js .mur-colonnes,.js .mur-colonnes > *{transition:none}
}
@media(prefers-reduced-motion:reduce){.marquee-track,.stats-track,.map-pin span{animation:none}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
/* Pages légales */
.legal{padding-block:clamp(48px,7vw,88px)}
.legal-head,.legal-body{max-width:860px;margin-inline:auto}
.legal-head h1{font-size:clamp(40px,5.4vw,68px);margin:4px 0 16px}
.legal-head>p:not(.label){color:var(--muted)}
.legal-notice{margin-top:24px;padding:18px 22px;background:var(--gold-soft);border-radius:var(--radius-sm);font-size:15px;color:var(--ink)}
.legal-nav{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 8px}
.legal-nav a{padding:10px 18px;border:1.5px solid var(--line);border-radius:10px;font-size:15px}
.legal-nav a[aria-current=page]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.legal-body section{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,34px);margin-top:16px}
.legal-body h2{font-size:24px;letter-spacing:-.015em;line-height:1.25;margin-bottom:16px}
.legal-body p,.legal-body li{color:#45494d;font-size:16px;line-height:1.75}
.legal-body p+p{margin-top:14px}
.legal-body ul{list-style:disc;padding-left:20px;margin:12px 0}
.legal-body a:not(.btn){text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.legal-fields>div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.legal-fields dt{font-size:14px;font-weight:600;color:var(--muted)}
.legal-fields dd{margin:0;overflow-wrap:anywhere}
.placeholder{background:var(--gold-soft);color:var(--ink);font-size:14px;padding:2px 6px;border-radius:6px}
.legal-table{overflow-x:auto;margin:12px 0 4px}.legal-table table{width:100%;min-width:560px;border-collapse:collapse;font-size:15px}.legal-table th,.legal-table td{text-align:left;vertical-align:top;padding:10px 14px 10px 0;border-bottom:1px solid var(--line);color:#45494d;line-height:1.5}.legal-table th{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.legal-table td:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;color:var(--ink);white-space:nowrap}.legal-state{display:inline-block;margin:0 0 14px;padding:8px 14px;background:var(--gold-soft);border-radius:999px;font-size:14px;color:var(--ink)}
.legal-back{display:inline-block;margin-top:32px;font-weight:500;border-bottom:2px solid var(--gold)}

/* Espace client (structure de core-agency.be : carte centrée, onglets, formulaire) */
.auth{padding:clamp(40px,6vw,72px) var(--gutter) clamp(64px,8vw,110px)}
.auth-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(32px,6vw,96px);align-items:start;max-width:1200px;margin-inline:auto}
.auth-side{position:sticky;top:calc(var(--header-h) + 32px)}
.auth-side h1{font-size:clamp(40px,4.8vw,66px);line-height:1.08}
.auth-side .lead{margin-top:20px}
.auth-points{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:12px}
.auth-points li{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;background:var(--soft-2);border-radius:var(--radius-sm)}
.auth-ico{flex:none;width:44px;height:44px;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.auth-ico svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-points b{display:block;font-weight:500;font-size:17px}
.auth-points p{color:var(--muted);font-size:15px;line-height:1.5;margin-top:3px}
.auth-aside-note{margin-top:24px;font-size:15px;color:var(--muted)}
.auth-aside-note a{color:var(--gold-text);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.auth-card{display:grid;gap:22px;padding:clamp(24px,3.2vw,40px);background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius)}
.auth-title{font-size:clamp(32px,3.4vw,44px);margin-top:0}
.auth-lead{color:var(--muted);font-size:16px;margin-top:8px}
@media(max-width:1000px){.auth-split{grid-template-columns:1fr;gap:36px}.auth-side{position:static}}
.tabs{display:grid;grid-template-columns:1fr 1fr;padding:5px;background:var(--soft-2);border-radius:12px}
.tabs button{border:0;background:none;padding:12px 18px;border-radius:9px;font-weight:500;color:var(--muted);transition:background .2s,color .2s}
.tabs button[aria-selected=true]{background:var(--gold);color:var(--ink)}
.form-status{padding:12px 16px;border-radius:var(--radius-sm);background:#fdecea;color:#8f2a14;font-size:15px}
.form-status.is-ok{background:var(--gold-soft);color:var(--ink)}
.oauth{display:grid;gap:12px}
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;border:1.5px solid var(--line);border-radius:10px;background:var(--white);font-weight:500;transition:border-color .2s}
.oauth-btn:hover{border-color:var(--ink)}
.oauth-ou{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}
.oauth-ou::before,.oauth-ou::after{content:'';flex:1;height:1px;background:var(--line)}
.auth-form{display:grid;gap:4px}
.auth-form .field{margin-top:12px}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.pass{position:relative;display:block}
.pass input{padding-right:52px}
.pass-oeil{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:none;border-radius:50%;color:var(--muted);display:grid;place-items:center}
.pass-oeil svg{width:20px;height:20px}
.pass-oeil[aria-pressed=true]{color:var(--gold-text)}
.field>.telrow,.telrow{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;margin-bottom:0;font-size:inherit;font-weight:inherit}
.telrow input{min-width:0}
.telrow select{min-height:52px;padding:12px 10px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--white);font-size:16px}
.souvenir{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font-size:15px;font-weight:500;cursor:pointer}
.souvenir input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--gold-text)}
.souvenir em{display:block;font-style:normal;font-weight:400;font-size:13px;color:var(--muted);margin-top:2px}
.btn-block{width:100%;margin-top:22px}
.auth-link{justify-self:start;margin-top:14px;background:none;border:0;padding:0;font-weight:500;font-size:15px;color:var(--gold-text);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth .privacy{margin-top:16px}
/* Tableau de bord de démonstration */
.dash{max-width:1040px;margin-inline:auto}
.dash-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px}
.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dash-card{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:26px}
.dash-wide{grid-column:1 / -1}
.dash-card h2{display:flex;align-items:center;gap:10px;font-size:20px;letter-spacing:-.01em;margin-bottom:18px}
.dash-card .tag{font-size:12px;padding:5px 10px;border:1px solid var(--muted-dark);border-radius:999px;color:var(--muted);font-weight:400}
.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.timeline li{display:grid;gap:10px}
.timeline li>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);font-weight:600;color:var(--muted)}
.timeline li.is-done>span{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.timeline li.is-now>span{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.timeline b{display:block;font-weight:600;margin-bottom:4px}
.timeline p{font-size:14px;color:var(--muted);line-height:1.45}
.docs{display:grid}
.docs li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.docs li:first-child{border-top:0;padding-top:0}
.docs b{display:block;font-weight:600}
.docs small{color:var(--muted);font-size:14px}
.pill{flex:none;font-size:13px;padding:6px 12px;border-radius:999px;background:var(--soft-2);color:var(--ink)}
.pill-ok{background:var(--gold);color:var(--ink)}
.pill-wait{background:var(--soft-2);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--gold)}
.dash-contact{color:var(--muted);line-height:1.8}
.dash-contact a{color:var(--ink);font-weight:500}
.dash-note{margin-top:24px;font-size:14px;color:var(--muted)}
@media(max-width:900px){.duo,.dash-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr}.timeline li{grid-template-columns:40px 1fr;align-items:start}}
/* Tablette */
@media(max-width:1280px){
  .services{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1180px){
  .visit{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .pied-groupes{gap:18px}
}
/* Tablette : accueil et sections empilés */
@media(max-width:1000px){
  .hero-inner{grid-template-columns:minmax(0,1fr);gap:8px}
  .hero-content{padding:8px 0 24px}
  .hero-visual{max-width:400px;margin:0 auto;justify-self:center}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .about-media{max-width:560px}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .projects{grid-template-columns:1fr 1fr}
  .map-grid{grid-template-columns:1fr;gap:28px}
  .map-frame{max-width:520px}
}
/* Mobile */
@media(max-width:900px){
  :root{--header-h:68px}
  body{padding-bottom:84px}
  .logo img{height:38px}
  .hero-visual{max-width:320px}
  .hero-actions .btn{flex:1 1 auto}
  .projects{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .about-stat{left:12px;bottom:calc(10% + 12px);padding:14px 16px}
  .about-stat strong{font-size:34px}
  .about-foot{align-items:flex-start;flex-direction:column}
  .map-frame{height:min(70vh,560px)}
  .map-credit{display:none}
  .days{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:1fr;gap:14px}
  .step,.step:nth-child(even){flex-direction:row;align-items:flex-start;gap:12px}
  .step .num{flex:none;width:52px;height:52px;margin:14px 0 0;font-size:22px}
  .step-card{flex:1;justify-items:start;text-align:left;padding:22px 20px}
  .row{grid-template-columns:1fr}
  .footer-grid{gap:24px}
  .pied-marque{gap:18px}
  .pied-logo{width:150px}
  .pied-bande{display:none}
  .pied-tete{gap:16px}
  .pied-sep{height:36px}
  .pied-groupes{grid-template-columns:1fr;gap:0}
  .pied-groupe{padding:14px 0;border-top:1px solid var(--line)}
  .pied-groupe ul{padding-left:0}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .footer-bottom>span:not(.credit-core){text-align:left;min-width:0}
  .mobile-bar{position:fixed;left:10px;right:10px;bottom:10px;z-index:40;display:grid;grid-template-columns:1fr 1.5fr;gap:8px;padding:8px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.15);margin-bottom:env(safe-area-inset-bottom)}
  .mobile-bar .btn{min-height:48px;padding:10px 16px}
  .legal-fields>div{grid-template-columns:1fr;gap:4px}
}
@media(max-width:640px){
  .services{grid-template-columns:1fr}
  .hero-feats,.feats{grid-template-columns:1fr}
  .about-media{padding-right:10%}
}
@media(max-width:480px){
  .types{grid-template-columns:1fr}
  .hero h1{font-size:42px}
  .footer-cta .hero-actions{flex-direction:column;align-items:stretch}
  .footer-cta{grid-template-columns:1fr}
  .footer-cta-img{min-height:260px}
}
/* ===== Signature : la maison qui se construit, dans le panneau des chiffres (façon Renovex) ===== */
.build{background:var(--white)}
.bstat strong{display:block;font-size:40px;font-weight:700;letter-spacing:-.04em;line-height:1}
.bstat strong i{font-style:normal;font-size:.6em;vertical-align:top}
.bstat span{display:block;font-size:13px;color:var(--muted);margin-top:4px}
.build-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;align-content:end}
.build-nums small{grid-column:1/-1}
.build-nums small{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.build-nums .bstat{padding-top:12px;border-top:1px solid var(--line)}
.build-nums .bstat strong{font-size:34px}
.build-photo{margin:0;border-radius:var(--radius);overflow:hidden;min-height:360px}
.build-photo img{width:100%;height:100%;object-fit:cover}
.build-text{display:flex;flex-direction:column;justify-content:center;padding:8px 0 8px 8px}
.build-text h2{margin-bottom:10px}
.build-foot{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.build-lines polyline,.build-lines circle{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.build-lines .sol{stroke:#d6cfbf;stroke-width:1.6;stroke-dasharray:6 5}
.build-lines .brique{stroke:#b9b4a8;stroke-width:1.5}
.build-lines .fin{stroke:var(--gold)}
.build-fills polygon{opacity:0}
.build-flag{opacity:0;transform:translateY(10px);transition:opacity .4s,transform .5s cubic-bezier(.2,.7,.2,1)}
.build-flag.is-on{opacity:1;transform:none}
.build-flag line{stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.build-flag path{fill:var(--gold)}
.build.is-static .build-lines polyline,.build.is-static .build-lines circle{stroke-dashoffset:0}
.build.is-static .build-fills polygon{opacity:1}
@media(max-width:1280px){
  .build-photo{display:none}
}
@media(max-width:1000px){
  .build-text{padding-left:0}
}
@media(max-width:640px){
  .build-nums .bstat strong{font-size:28px}
}
/* ===== Signature : boutons magnétiques ===== */
.magnet{transition:transform .3s cubic-bezier(.2,.7,.2,1),background .2s,color .2s,border-color .2s}
/* ===== Signature : titre du hero mot à mot, texte qui s'allume ===== */
.hero h1.is-split{animation:none}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.hero h1 .w>span{display:inline-block;transform:translateY(110%);animation:lift 1.1s cubic-bezier(.2,.7,.2,1) calc(.15s + var(--i,0)*.09s) both}
@keyframes lift{to{transform:none}}
.js .big .w{color:#c6c2b8;transition:color .35s}
.js .big .w.is-lit{color:var(--ink)}
@media(prefers-reduced-motion:reduce){.js .big .w{color:inherit}}
/* ===== Page contact ===== */
.contact{padding-block:clamp(40px,6vw,72px) clamp(56px,8vw,104px)}
.contact-head{max-width:760px;margin-bottom:clamp(32px,5vw,56px)}
.contact-head h1{font-size:clamp(40px,5.6vw,80px);margin-bottom:18px}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.contact-ways{display:grid;gap:12px;margin-bottom:28px}
.contact-way{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1.5px solid var(--line);border-radius:var(--radius-sm);transition:border-color .2s,background .2s}
.contact-way:hover{transform:translateY(-3px)}
.contact-way{transition:border-color .25s,transform .25s cubic-bezier(.2,.7,.2,1)}
.contact-way .ico{flex:none;width:44px;height:44px;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.contact-way .ico svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.contact-way .ico svg.fill{fill:var(--ink);stroke:none}
.contact-way b{display:block;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.contact-way span{display:block;font-size:17px;font-weight:500;margin-top:2px}
.contact-map{position:relative;aspect-ratio:1;max-width:520px;overflow:hidden;border-radius:var(--radius);background:var(--soft-2);isolation:isolate}
.contact-form{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,36px)}
.contact-form h2{font-size:clamp(26px,2.8vw,36px);margin-bottom:6px}
.contact-form .lead{font-size:16px;margin-bottom:8px}
.contact-form .btn{margin-top:22px}
.contact-note{margin-top:14px;font-size:14px;color:var(--muted)}
@media(max-width:1000px){.contact-grid{grid-template-columns:1fr}.contact-map{max-width:none}}
/* ===== Page réalisations ===== */
.real{padding-block:clamp(40px,6vw,72px) clamp(56px,8vw,104px)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 32px}
.filters button{padding:10px 18px;border:1.5px solid var(--line);border-radius:10px;background:var(--white);font-weight:500;font-size:15px;transition:background .2s,border-color .2s}
.filters button{background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 100%/100% 0,var(--white);transition:background-size .35s cubic-bezier(.2,.7,.2,1),border-color .35s}
.filters button:hover{background-size:100% 100%;border-color:var(--gold)}
.filters button[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}
.project.is-hidden{display:none}
.real-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
/* ===== Bandeau cookies / stockage local ===== */
.cookies{position:fixed;z-index:60;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px 28px;padding:14px var(--gutter);background:var(--white);border-top:1px solid var(--line)}
.cookies p{flex:1;min-width:0}
.cookies p{font-size:15px;line-height:1.5;color:var(--muted)}
.cookies p a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cookies-actions{display:flex;flex-wrap:wrap;gap:8px}
.cookies-actions .btn{min-height:46px;padding:8px 20px}
@media(max-width:900px){.cookies{flex-direction:column;align-items:stretch;padding-bottom:calc(14px + 76px)}.cookies-actions .btn{flex:1 1 auto}}
.has-cookies .ia-toggle{bottom:112px}
@media(max-width:900px){.has-cookies .ia-toggle{bottom:300px}}
/* ===== Assistant MGR (agent conversationnel) ===== */
.ia-toggle{position:fixed;z-index:55;right:16px;bottom:16px;display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 18px 8px 8px;background:var(--gold);color:var(--ink);border:0;border-radius:999px;font-weight:600;font-size:15px}
.ia-toggle:hover{background:var(--gold-hover)}
.ia-toggle .ia-ico{width:38px;height:38px;border-radius:50%;background:var(--white);display:grid;place-items:center}
.ia-toggle .ia-ico svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ia-toggle[aria-expanded=true]{display:none}
.ia{position:fixed;z-index:56;right:16px;bottom:16px;width:min(400px,calc(100% - 32px));height:min(620px,calc(100svh - 32px));display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.ia[hidden]{display:none}
.ia-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;border-bottom:1px solid var(--line)}
.ia-head .ia-ico{flex:none;width:42px;height:42px;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.ia-head .ia-ico svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ia-head b{display:block;font-size:16px}
.ia-head small{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.ia-head small::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold)}
.ia-close{margin-left:auto;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:none;font-size:20px;display:grid;place-items:center}
.ia-log{flex:1;overflow:auto;padding:16px;display:grid;gap:10px;align-content:start;scroll-behavior:smooth}
.ia-msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.ia-msg p+p{margin-top:8px}
.ia-msg a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ia-bot{justify-self:start;background:var(--soft);border-bottom-left-radius:4px}
.ia-user{justify-self:end;background:var(--gold);border-bottom-right-radius:4px}
.ia-typing{justify-self:start;display:flex;gap:4px;padding:14px 16px;background:var(--soft);border-radius:14px}
.ia-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:ia-dot 1s infinite}
.ia-typing i:nth-child(2){animation-delay:.15s}.ia-typing i:nth-child(3){animation-delay:.3s}
@keyframes ia-dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
.ia-chips{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
.ia-chips button{padding:8px 13px;border:1.5px solid var(--line);border-radius:999px;background:var(--white);font-size:14px;font-weight:500;transition:background .2s,border-color .2s}
.ia-chips button:hover{background:var(--gold);border-color:var(--gold)}
.ia-msg .btn{margin-top:10px;min-height:44px;padding:8px 16px;font-size:14px;text-decoration:none}
.ia-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.ia-form input{flex:1;min-width:0;min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:15px}
.ia-form input:focus{outline:0;border-color:var(--ink)}
.ia-form button{width:48px;height:48px;flex:none;border:0;border-radius:10px;background:var(--gold);display:grid;place-items:center}
.ia-form button svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ia-note{padding:0 14px 10px;font-size:12px;color:var(--muted);text-align:center}
@media(max-width:900px){
  .ia-toggle{bottom:92px;padding:8px}
  .ia-toggle span{display:none}
  .ia{right:8px;bottom:8px;width:calc(100% - 16px);height:calc(100svh - 16px)}
}
@media(prefers-reduced-motion:reduce){.ia-typing i{animation:none}}
/* ===== Icônes nues : plus de carrés colorés, de vraies icônes SVG ===== */
.feat .ico,.step-card .ico,.contact-way .ico,.auth-ico,.reseau-ic,.ia-head .ia-ico,.pied-ic{width:auto;height:auto;background:none;border-radius:0}
.feat .ico svg,.contact-way .ico svg,.auth-ico svg{width:30px;height:30px}
.step-card .ico svg,.reseau-ic svg{width:40px;height:40px;stroke-width:1.6}
.ia-head .ia-ico svg{width:26px;height:26px}
.pied-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gold)}
.pied-ic svg{width:18px;height:18px;fill:var(--ink)}
.pied-ic svg{width:18px;height:18px}
.services-foot .dot{width:14px;height:14px;background:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f8c068' d='M12 2l2.4 7.6L22 12l-7.6 2.4L12 22l-2.4-7.6L2 12l7.6-2.4z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}
.portrait-chip i{width:16px;height:16px;background:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d0d0d' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V8l7-5 7 5v13M9 21v-6h6v6'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}
.why .check{display:inline-block;width:18px;height:18px;color:transparent;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d0d0d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;margin-top:4px}
/* Icônes pleines */
.feat .ico svg,.service .ico svg,.step-card .ico svg,.contact-way .ico svg,.auth-ico svg,.reseau-ic svg,.ia-head .ia-ico svg,.ia-toggle .ia-ico svg,.pied-ic svg,.hdr-icon svg,.contact-way .ico svg.fill{fill:var(--ink);stroke:none}
.ia-toggle .ia-ico svg,.ia-head .ia-ico svg,.ia-form button svg{fill:var(--ink);stroke:none}
.ia-form button svg{fill:none;stroke:var(--ink)}
/* ===== Espace client : deux plans ===== */
.plans{display:grid;gap:14px;margin-top:28px}
.plan{padding:22px 24px;background:var(--soft-2);border-radius:var(--radius)}
.plan-patron{border:1.5px solid var(--line)}
.plan-kicker{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.plan h2{font-size:24px;margin-bottom:12px}
.plan .checks{margin-top:0;font-size:15px}
.plan-note{margin-top:14px;font-size:14px;color:var(--muted)}
.plan .btn{margin-top:18px}
.dash-actions{display:flex;flex-wrap:wrap;gap:8px}
.dash-chantier h2{font-size:clamp(26px,3vw,36px);margin-bottom:6px}
.dash-chantier .auth-lead{margin-bottom:14px}
.dash-msg{display:grid;gap:10px}
.dash-msg textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:15px;resize:vertical}
.dash-msg .btn{justify-self:start}
.timeline li.is-now p{color:var(--ink)}
body.is-crm .auth{max-width:none}
/* ===== Espace patron : CRM façon jeu de gestion ===== */
.crm{max-width:var(--wrap);margin-inline:auto}
.crm-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}
.crm-top .auth-title{font-size:clamp(30px,3.4vw,44px)}
.crm-day{margin-top:8px;color:var(--muted);text-transform:capitalize}
.crm-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.crm-views,.crm-modules{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--soft-2);border-radius:12px}
.crm-views button,.crm-modules button{border:0;background:none;padding:9px 14px;border-radius:9px;font-weight:600;font-size:14px;color:var(--muted);transition:background .2s,color .2s}
.crm-views button[aria-pressed=true],.crm-modules button[aria-pressed=true]{background:var(--gold);color:var(--ink)}
.crm-metrics{display:flex;flex-wrap:wrap;gap:12px 28px;padding:16px 22px;background:var(--soft-2);border-radius:var(--radius);margin-bottom:16px;font-size:14px;color:var(--muted)}
.crm-metrics b{font-size:24px;font-weight:700;color:var(--ink);margin-right:6px;letter-spacing:-.03em}
.crm-work{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.crm-stage{position:relative;min-height:520px;border-radius:var(--radius);overflow:hidden;background:linear-gradient(180deg,#f7f7f7,#ececec);border:1px solid var(--line)}
.crm-stage canvas{display:block;width:100%;height:520px;touch-action:none;cursor:grab}
.crm-stage canvas:active{cursor:grabbing}
.crm-markers{position:absolute;inset:0;pointer-events:none}
.crm-marker{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;padding:7px 11px;background:var(--white);border:1px solid var(--line);border-radius:9px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.25}
.crm-marker small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.crm-marker[aria-pressed=true]{background:var(--gold);border-color:var(--gold)}
.crm-marker[aria-pressed=true] small{color:var(--ink)}
.crm-cam{position:absolute;left:12px;bottom:12px;display:flex;gap:4px}
.crm-cam button{min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--white);font-size:15px;font-weight:600}
.crm-cam button:hover{background:var(--gold);border-color:var(--gold)}
.crm-hint{position:absolute;top:12px;left:12px;padding:6px 10px;background:rgba(255,255,255,.9);border-radius:8px;font-size:12px;color:var(--muted)}
.crm-aside{padding:20px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);font-size:14px}
.crm-aside h3,.crm-box h3{font-size:20px;margin:6px 0 8px}
.crm-aside h4{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.crm-over{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.crm-tag{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--gold);font-size:12px;font-weight:600}
.crm-muted{color:var(--muted);font-size:13px;margin-top:8px}
.crm-pair{display:flex;justify-content:space-between;gap:12px;margin:10px 0 4px;font-size:13px}
.crm-pair b{font-weight:600}
.crm-meter{height:6px;background:var(--soft-2);border-radius:4px;overflow:hidden}
.crm-meter i{display:block;height:100%;background:var(--gold);transition:width .4s}
.crm-warn{margin-top:10px;padding:9px 11px;background:var(--gold-soft);border-radius:8px;font-size:13px}
.crm-person{display:flex;gap:10px;align-items:center;width:100%;margin:8px 0;padding:0;border:0;background:none;text-align:left;font:inherit;font-size:14px}
.crm-person small{color:var(--muted)}
.crm-avatar{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--gold);font-size:12px;font-weight:700}
.crm-task{display:flex;gap:10px;align-items:flex-start;margin:8px 0;font-size:14px}
.crm-task input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin-top:0;flex:none;border:2px solid var(--line);border-radius:50%;background:var(--white);display:grid;place-items:center;transition:background .2s,border-color .2s;cursor:pointer}
.crm-task input::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--ink);transform:scale(0);transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.crm-task input:checked{background:var(--gold);border-color:var(--gold)}
.crm-task input:checked::before{transform:scale(1)}
.crm-task{align-items:center;padding:8px 10px;border-radius:10px;background:var(--soft-2)}
.crm-task input:checked+span{color:var(--muted);text-decoration:line-through}
.crm-add{display:flex;gap:6px;margin-top:8px}
.crm-add input{flex:1;min-width:0;min-height:40px;padding:8px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:14px}
.crm-add button{width:40px;height:40px;border:0;border-radius:9px;background:var(--gold);font-size:18px;font-weight:600}
.crm-doc{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.crm-doc small{display:block;color:var(--muted);font-size:12px}
.crm-doc .pill{border:0;cursor:pointer;font:inherit;font-size:12px}
.crm-aside select,.crm-field select,.crm-field input{width:100%;min-height:42px;padding:8px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--white);font-size:14px}
.crm-lower{margin-top:16px}
.crm-modules{display:inline-flex;margin-bottom:14px}
.crm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.crm-box{padding:20px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);font-size:14px;display:flex;flex-direction:column}
.crm-box .btn{margin-top:14px;align-self:flex-start}
.crm-box .crm-person{margin:0 0 6px}
.crm-box .crm-person h3{margin:0}
.crm-big{font-size:34px;font-weight:700;letter-spacing:-.03em;margin:4px 0 8px}
.crm-big small{font-size:14px;font-weight:400;color:var(--muted)}
.crm-field{display:block;margin-top:10px;font-size:12px;color:var(--muted)}
.crm-field select,.crm-field input{margin-top:4px;color:var(--ink)}
.crm-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.crm-actions .btn{margin-top:0;flex:1 1 auto}
.crm-table{display:grid;gap:8px}
.crm-row{display:grid;grid-template-columns:1.2fr 1.2fr 1.2fr .8fr;gap:12px;padding:12px 16px;background:var(--white);border:1px solid var(--line);border-radius:12px;font-size:14px;align-items:center}
.crm-row small{display:block;color:var(--muted);font-size:12px}
.crm-row.crm-head{background:none;border:0;padding:0 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.crm-link{border:0;background:none;padding:0;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.crm-newclient{margin-top:18px;padding:20px;background:var(--soft-2);border-radius:var(--radius)}
.crm-newclient h3{font-size:18px;margin-bottom:12px}
.crm-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.crm-fields input,.crm-fields select{min-height:44px;padding:8px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--white);font-size:14px}
.crm-journal{display:grid;gap:8px}
.crm-journal li{display:grid;gap:3px;padding:12px 14px;background:var(--soft-2);border-radius:10px;font-size:14px}
.crm-journal li.is-client{border:1.5px solid var(--gold)}
.crm-journal small{font-size:12px;color:var(--muted)}
.crm-journal em{font-size:12px;font-style:normal;color:var(--muted)}
.crm-notice{margin-top:14px;min-height:22px;font-size:14px;color:var(--muted)}
.crm-notice.is-err{color:#8f2a14}
@media(max-width:1000px){.crm-work{grid-template-columns:1fr}.crm-grid{grid-template-columns:1fr 1fr}.crm-fields{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.crm-stage{min-height:380px}.crm-stage canvas{height:380px}.crm-grid,.crm-fields,.crm-row{grid-template-columns:1fr}.crm-row.crm-head{display:none}.crm-hint{display:none}}
/* ===== Balayage or : fin de l'écran de chargement et micro-transitions entre pages ===== */
html::before{content:'';position:fixed;inset:0;z-index:300;background:var(--gold);transform:translateY(101%);pointer-events:none}
html.pt-out::before{transform:none;transition:transform .42s cubic-bezier(.7,0,.2,1)}
html.pt-in::before{transform:none}
html.pt-in.pt-reveal::before{transform:translateY(-101%);transition:transform .6s cubic-bezier(.7,0,.2,1) .05s}
html.pt-out{cursor:progress}
html::after{content:'';position:fixed;left:50%;top:50%;z-index:301;width:min(42vw,250px);aspect-ratio:724/385;background:url('assets/logo-ink.png') center/contain no-repeat;transform:translate(-50%,-50%) scale(.92);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
html.pt-out::after,html.pt-in::after{opacity:1;transform:translate(-50%,-50%) scale(1);transition:opacity .3s .12s,transform .45s .12s cubic-bezier(.2,.7,.2,1)}
html.pt-in.pt-reveal::after{opacity:0;transform:translate(-50%,-50%) translateY(-40px);transition:opacity .25s,transform .4s}
html.pt-in:not(.pt-reveal) body{visibility:hidden}
@media(prefers-reduced-motion:reduce){html::before,html::after{display:none}html.pt-in:not(.pt-reveal) body{visibility:visible}}
/* ===== Avis clients : deux rangées qui défilent en sens opposés ===== */
.avis-head{display:grid;justify-items:center;text-align:center;margin-bottom:28px}
.avis-head .lead{max-width:56ch;margin-top:12px}
@media(prefers-reduced-motion:reduce){.avis-row{animation:none}}
.avis-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:22px}
@media(max-width:640px){.avis-card{width:280px}}
/* Page contact : bloc Nous trouver + itinéraire */
.contact-find{margin:28px 0 18px}
.contact-find h2{font-size:clamp(26px,2.8vw,36px);margin-bottom:10px}
.contact-find .lead{font-size:16px}
.contact-route{margin-top:14px}
/* ===== Espace patron plein écran : panneaux gauche et droite, univers au centre ===== */
.is-crm .header,.is-crm .footer,.is-crm .cookies,.is-crm .ia-toggle,.is-crm .ia,.is-crm .mobile-bar{display:none!important}
.is-crm{overflow:hidden}
.is-crm .auth{padding:0}
.is-crm .crm{position:fixed;inset:0;z-index:70;max-width:none;margin:0;display:grid;grid-template-columns:330px minmax(0,1fr) 340px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top top top" "left stage right";background:var(--white)}
.crm-top{grid-area:top;margin:0;padding:10px 18px;border-bottom:1px solid var(--line);align-items:center}
.is-crm .crm-top .label{margin-bottom:2px;font-size:11px}
.is-crm .crm-top .auth-title{font-size:22px;margin:0}
.is-crm .crm-top .auth-title mark{padding:0 .1em}
.is-crm .crm-day{margin-top:0;font-size:13px}
.crm-left{grid-area:left;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding:14px;border-right:1px solid var(--line);scrollbar-width:thin}
.crm-left .crm-metrics{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0;gap:8px;background:none;font-size:12px}
.crm-left .crm-metrics span{display:grid;padding:10px 12px;background:var(--soft-2);border-radius:12px;line-height:1.2}
.crm-left .crm-metrics b{font-size:22px;margin:0}
.crm-left .crm-lower{margin:0}
.crm-left .crm-modules{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin-bottom:10px;background:none;padding:0;gap:6px}
.crm-left .crm-modules button{display:grid;justify-items:center;gap:4px;padding:10px 6px;font-size:11px;background:var(--soft-2);border-radius:12px;position:relative}
.crm-left .crm-modules button::before{content:'';width:20px;height:20px;background:var(--ink);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.crm-left .crm-modules button[aria-pressed=true]{background:var(--gold)}
.crm-left .crm-modules button[data-module=projects]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button[data-module=stock]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2zm-5 12H9v-2h6v2zm5-7H4V4h16v3z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button[data-module=people]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button[data-module=clients]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button[data-module=journal]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button[data-module=scout]{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z'/%3E%3C/svg%3E")}
.crm-left .crm-modules button i{position:absolute;top:6px;right:8px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--ink);color:var(--white);font-size:10px;font-style:normal;font-weight:700;display:grid;place-items:center}
.crm-today{display:grid;gap:6px;margin-bottom:12px}
.crm-today h4{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 2px}
.crm-today button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:10px;background:var(--white);border:1px solid var(--line);text-align:left;font:inherit;font-size:13px}
.crm-today button b{flex:1;font-weight:600}
.crm-today button small{color:var(--muted)}
.crm-today button i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.crm-today button.is-alert i{background:#c0391b}
.crm-left .crm-grid{grid-template-columns:1fr;gap:10px}
.crm-left .crm-box{padding:16px}
.crm-left .crm-row{grid-template-columns:1fr;gap:4px}
.crm-left .crm-row.crm-head{display:none}
.crm-left .crm-fields{grid-template-columns:1fr}
.crm-left .dash-note{display:none}
.crm-stage{grid-area:stage;min-height:0;height:100%;border-radius:0;border:0;border-right:1px solid var(--line)}
.crm-stage canvas{height:100%}
.crm-aside{grid-area:right;min-height:0;overflow:auto;border:0;border-radius:0;padding:18px;scrollbar-width:thin}
.crm-work{display:contents}
.crm.is-dash{grid-template-areas:"top top top" "left left right"}
.crm.is-dash .crm-stage{display:none}
.crm.is-dash .crm-left .crm-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.crm.is-dash .crm-left .crm-row{grid-template-columns:1.2fr 1.2fr 1.2fr .8fr}
.crm.is-dash .crm-left .crm-row.crm-head{display:grid}
.crm.is-dash .crm-left .crm-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.crm.is-dash .crm-left .crm-modules button{font-size:14px}
@media(max-width:1180px){.is-crm .crm{grid-template-columns:280px minmax(0,1fr) 300px}}
@media(max-width:900px){
  .is-crm{overflow:auto}
  .is-crm .crm{position:static;display:grid;grid-template-columns:1fr;grid-template-areas:"top" "stage" "right" "left";height:auto}
  .crm-stage{height:60svh;min-height:380px;border-right:0;border-bottom:1px solid var(--line)}
  .crm-left{border-right:0}
  .crm.is-dash{grid-template-areas:"top" "right" "left"}
  .crm.is-dash .crm-left .crm-grid,.crm.is-dash .crm-left .crm-fields,.crm.is-dash .crm-left .crm-row{grid-template-columns:1fr}
  .crm.is-dash .crm-left .crm-row.crm-head{display:none}
}
.crm-tag-line{background:none;border:1.5px solid var(--line)}
.crm-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0;font-size:13px}
.crm-kv span{color:var(--muted)}
.crm-kv b{font-weight:600;overflow-wrap:anywhere}
.crm-kv a{text-decoration:underline;text-underline-offset:3px}
.crm-journal-sm li{padding:9px 11px;font-size:13px}
.crm-stage canvas{cursor:grab}
/* ===== Espace patron : recherche, outils, listes compactes, Œil ===== */
.crm-search{position:relative;flex:1 1 260px;max-width:420px}
.crm-search input{width:100%;min-height:44px;padding:8px 14px 8px 38px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235d6166' d='M15.5 14h-.8l-.3-.3A6.5 6.5 0 1 0 14 15.5l.3.3v.8l5 5 1.5-1.5-5-5zm-6 0a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z'/%3E%3C/svg%3E") 12px center/18px no-repeat}
.crm-search input:focus{border-color:var(--ink)}
.crm-search-out{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 6px);max-height:360px;overflow:auto;padding:6px;background:var(--white);border:1px solid var(--line);border-radius:12px}
.crm-search-out button{display:grid;grid-template-columns:72px 1fr;gap:2px 10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;text-align:left;font:inherit;font-size:14px}
.crm-search-out button:hover{background:var(--soft-2)}
.crm-search-out small{grid-row:1/3;align-self:center;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.crm-search-out b{font-weight:600}
.crm-search-out span{font-size:12px;color:var(--muted)}
.crm-toolbox{position:absolute;top:12px;right:12px;display:flex;gap:4px;padding:4px;background:var(--white);border:1px solid var(--line);border-radius:10px}
.crm-toolbox button{border:0;background:none;padding:7px 11px;border-radius:7px;font-weight:600;font-size:13px;color:var(--muted)}
.crm-toolbox button[aria-pressed=true]{background:var(--gold);color:var(--ink)}
.crm-hint{top:auto;bottom:62px;left:12px;transition:opacity .4s}
.crm-hint.is-hidden{opacity:0}
.crm-list{display:grid;gap:6px}
.crm-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--white);text-align:left;font:inherit;color:inherit;transition:border-color .2s,background .2s}
button.crm-item:hover,.crm-item-link:hover{background:var(--soft-2)}
.crm-item.is-selected{background:#fff8ea}
.crm-item-main{flex:1;min-width:0;display:grid;gap:3px;border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit}
.crm-item-main b{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}
.crm-item-main b .crm-avatar{width:26px;height:26px;font-size:10px}
.crm-item-main small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.crm-item-main small strong{color:#8f2a14}
.crm-item-side{flex:none;display:grid;gap:4px;justify-items:end;min-width:52px}
.crm-item-side em{font-style:normal;font-weight:700;font-size:13px}
.crm-mini{display:block;width:52px;height:4px;background:var(--soft-2);border-radius:3px;overflow:hidden}
.crm-item-main .crm-mini{width:100%;margin-top:2px}
.crm-mini b{display:block;height:100%;background:var(--gold)}
.crm-item-tools{flex:none;display:flex;flex-wrap:wrap;gap:4px;max-width:46%}
.crm-item-tools select,.crm-item-tools input{min-height:32px;padding:4px 8px;border:1px solid var(--line);border-radius:7px;font-size:12px;background:var(--white)}
.crm-item-tools input[type=number]{width:62px}
.crm-item-tools button{min-height:32px;padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:var(--white);font-size:12px;font-weight:600}
.crm-item-tools button:hover{background:var(--gold)}
.crm-scout-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.crm-scout h3{font-size:17px;margin:0 0 4px}
.crm-badge{flex:none;padding:6px 10px;border-radius:999px;background:var(--gold);font-size:12px;font-weight:700}
.crm-item.lead-Nouveau{border-color:var(--gold)}
.crm-item.lead-Gagné{background:#f1f7ec}
.crm-item.lead-Perdu{opacity:.55}
.crm-settings{display:grid;gap:8px;padding:14px;background:var(--soft-2);border-radius:10px;font-size:13px}
.crm-settings label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.crm-settings input{min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:var(--white)}
.crm-settings input[type=number]{width:70px}
.crm-settings .btn{justify-self:start}
.crm-left .crm-item-tools{max-width:100%}
.crm-left .crm-item{flex-wrap:wrap}
@media(max-width:900px){.crm-search{max-width:none}.crm-toolbox{top:auto;bottom:62px;right:12px}.crm-hint{display:none}}
/* ===== Page 404 ===== */
.p404{padding-block:clamp(40px,6vw,80px) clamp(56px,8vw,110px)}
.p404-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.p404 h1{font-size:clamp(38px,5vw,66px);margin:0 0 18px}
.p404 .lead{margin-bottom:24px}
.p404-note a{text-decoration:underline;text-underline-offset:3px;font-weight:600}
.p404-scene{margin:0}
.p404-scene svg{width:100%;height:auto}
@media(prefers-reduced-motion:no-preference){
  .p404-load{animation:p404-swing 3.2s ease-in-out infinite;transform-origin:330px 84px}
  .p404-cable{animation:p404-swing 3.2s ease-in-out infinite;transform-origin:330px 84px}
  .p404-tape{animation:p404-tape 1.4s linear infinite}
  .p404-crane{animation:p404-crane 9s ease-in-out infinite;transform-origin:407px 300px}
}
@keyframes p404-swing{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes p404-tape{to{transform:translateX(28px)}}
@keyframes p404-crane{0%,100%{transform:rotate(0)}50%{transform:rotate(-6deg)}}
@media(max-width:900px){.p404-grid{grid-template-columns:1fr}.p404-scene{max-width:480px}}
/* ===== Estimation ===== */
.estim{padding-block:clamp(40px,6vw,72px) clamp(56px,8vw,104px)}
.estim-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,4vw,56px);align-items:start}
.estim-out{margin-top:18px;padding:18px 20px;background:var(--gold);border-radius:var(--radius)}
.estim-out strong{display:block;font-size:clamp(26px,3vw,38px);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.estim-out strong span{font-size:.5em;font-weight:500}
.estim-out small{display:block;margin-top:6px;font-size:13px}
.estim-out .note{margin-top:10px;color:var(--ink);font-size:13px}
.estim .why{margin-top:0}
.config{margin-top:clamp(48px,7vw,96px)}
.config-grid{display:grid;grid-template-columns:1fr;max-width:760px;margin-inline:auto}
.config-resume{margin:4px 0 14px;padding:12px 16px;border-radius:12px;background:var(--gold-soft);font-size:15px;color:var(--ink)}
.config-resume:empty{display:none}
.config-form{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:clamp(20px,3vw,32px);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.config-form .field{margin-top:10px}
.config-form .btn{margin-top:18px;justify-self:stretch;white-space:normal;text-align:center}
@media(max-width:1000px){.estim-grid,.config-grid{grid-template-columns:1fr}}
/* ===== Contact : rappel ===== */
.contact-side{display:grid;gap:20px}
.callback,.photo-quote{padding:clamp(20px,3vw,30px);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.callback-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.callback-head .ico svg{width:34px;height:34px;fill:var(--ink);flex:none}
.callback-head h2{font-size:clamp(22px,2.4vw,28px);margin-bottom:4px}
.callback-head .lead{font-size:15px}
.callback-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.callback-row .btn{grid-column:1/-1}
.callback-row input,.callback-row select{min-height:52px;padding:10px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-size:16px;background:var(--white)}
.callback-row input[aria-invalid=true]{border-color:#c0391b}
.photo-drop{display:flex;align-items:center;gap:14px;padding:18px;border:2px dashed var(--line);border-radius:var(--radius);cursor:pointer;transition:border-color .2s,background .2s}
.photo-drop:hover{border-color:var(--gold);background:var(--soft-2)}
.photo-drop input{position:absolute;opacity:0;width:1px;height:1px}
.photo-drop-text b{display:block;font-size:16px}
.photo-drop-text small{color:var(--muted);font-size:13px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:10px}
.photo-grid:empty{display:none}
.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.photo-quote .btn{margin-top:18px}
@media(max-width:480px){.callback-row{grid-template-columns:1fr}}
/* ===== Réalisations : avant/après, chantier en direct, carte ===== */
.ba-section,.terrain-section{margin-top:clamp(48px,7vw,96px)}
.ba{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;user-select:none;max-width:1000px;margin-inline:auto}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-tag{position:absolute;top:14px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.9);font-size:12px;font-weight:600}
.ba-tag-before{left:14px}.ba-tag-after{right:14px}
.ba{cursor:ew-resize;touch-action:pan-y}
.ba-range{position:absolute;left:0;right:0;bottom:0;width:100%;height:1px;margin:0;opacity:0;pointer-events:none}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:var(--white);transform:translateX(-50%);pointer-events:none}
.ba-handle i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:var(--gold);border:3px solid var(--white);display:grid;place-items:center;font-style:normal;font-size:18px;font-weight:700}

.map-pins{position:absolute;inset:0;z-index:2;pointer-events:none}
.map-pin2{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;border:0;background:none;padding:0 0 10px;cursor:pointer}
.map-pin2 i{display:block;width:18px;height:18px;margin:0 auto;border-radius:50% 50% 50% 0;background:var(--gold);border:2.5px solid var(--ink);transform:rotate(-45deg)}
.map-pin2.is-home i{background:var(--ink);border-color:var(--gold)}
.map-pin2 span{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);white-space:nowrap;padding:6px 10px;border-radius:8px;background:var(--white);border:1px solid var(--line);font-size:12px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none}
.map-pin2 span small{display:block;font-weight:400;color:var(--muted);font-size:11px}
.map-pin2:hover span,.map-pin2.is-active span{opacity:1}


.visit-delay{display:inline-block;margin:0 0 14px;padding:8px 14px;border-radius:999px;background:var(--gold);font-size:14px}
.crm-aside .crm-doc .pill,.crm-aside .crm-person,.crm-aside .crm-add input,.crm-aside select{border-radius:10px}
/* ===== Bandeau point fort au-dessus de l'en-tête ===== */
.topbar{background:var(--gold);color:var(--ink);font-size:13px;font-weight:600}
.topbar .wrap{display:flex;align-items:center;justify-content:center;gap:10px 26px;flex-wrap:wrap;min-height:38px;padding-block:6px}
.topbar span{display:inline-flex;align-items:center;gap:8px}
.topbar svg{width:15px;height:15px;fill:currentColor}
@media(max-width:640px){.topbar .wrap{gap:4px 16px;font-size:12px}.topbar span:nth-child(3){display:none}}
.ba-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}
@media(max-width:1000px){.ba-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.terrain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.terrain-grid figure{position:relative;margin:0;min-width:0}
.terrain-img{position:relative;border-radius:var(--radius);overflow:hidden;z-index:1}
.terrain-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.terrain-grid figure:hover img{transform:scale(1.04)}
.terrain-grid figure[data-box]::before{content:'';position:absolute;inset:0 0 auto 0;aspect-ratio:4/3;background:var(--gold);border-radius:var(--radius);z-index:0;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.terrain-grid figure[data-box=left]::before{transform:translate(-12px,12px)}
.terrain-grid figure[data-box=right]::before{transform:translate(12px,-12px)}
.terrain-grid figure[data-box=top]::before{transform:translate(0,-14px)}
.terrain-grid figure[data-box]:hover::before{transform:translate(0,0)}
.terrain-grid .zoom{position:absolute;right:0;bottom:0;z-index:2;width:62px;height:62px;padding:0;border:0;background:var(--white);border-radius:var(--radius) 0 0 0;display:grid;place-items:center;cursor:pointer}
.terrain-grid .zoom i{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--ink);color:var(--ink);transition:background .2s,border-color .2s,transform .3s}
.terrain-grid .zoom svg{width:18px;height:18px}
.terrain-grid figure:hover .zoom i,.terrain-grid .zoom:hover i{background:var(--gold);border-color:var(--gold);transform:rotate(45deg)}
.lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100vw;height:100vh}
.lightbox::backdrop{background:rgba(13,13,13,.92)}
.lightbox img{width:100%;height:100%;object-fit:contain;display:block}
.lightbox .lb-close{position:fixed;top:18px;right:18px;width:48px;height:48px;border-radius:50%;border:0;background:var(--gold);color:var(--ink);font-size:26px;cursor:pointer;display:grid;place-items:center}
.terrain-grid figcaption{margin-top:8px;font-size:14px;color:var(--muted)}
@media(max-width:900px){.terrain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.terrain-grid{grid-template-columns:1fr}}
.ba-item{margin:0;min-width:0}
.ba-land{aspect-ratio:4/3;width:100%;max-width:none;margin:0}
.ba-land .ba-handle i{width:40px;height:40px}
.ba-handle i svg{width:20px;height:20px}
.ba{cursor:default}
.ba-cap{margin:12px 2px 0;font-size:14px;color:var(--muted);line-height:1.45}
.ba-cap b{display:block;font-size:15px;font-weight:600;color:var(--ink)}
@media(max-width:600px){.ba-grid{grid-template-columns:1fr}}
/* FAQ : icône pleine dans un cercle or */
.faq summary{gap:14px}
.faq summary>span:last-of-type{flex:1}
.faq-ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--gold);display:grid;place-items:center}
.faq-ic svg{width:20px;height:20px;fill:var(--ink)}
/* Avis : photo du chantier dans la carte */
/* Méthode : étapes qui s'activent l'une après l'autre */
.steps{position:relative}
.step{opacity:.55;transition:opacity .5s}
.step.is-active,.step.is-done{opacity:1}
.step .num{transition:transform .4s cubic-bezier(.2,.7,.2,1),background .4s,color .4s;background:var(--soft-2);color:var(--ink)}
.step.is-done .num,.step.is-active .num{background:var(--gold);color:var(--white)}
.step.is-active .num{transform:scale(1.18)}
.step.is-active .step-card{transform:translateY(-4px)}
.step-bar{display:block;width:100%;height:4px;margin-top:14px;border-radius:3px;background:var(--soft-2);overflow:hidden}
.step-bar::before{content:'';display:block;height:100%;width:0;background:var(--gold)}
.step.is-done .step-bar::before{width:100%}
.step.is-active .step-bar::before{animation:step-fill var(--step-dur,3.2s) linear forwards}
@keyframes step-fill{to{width:100%}}
.step.is-active .ico svg{animation:step-pop .6s cubic-bezier(.2,.7,.2,1)}
@keyframes step-pop{0%{transform:scale(.6) rotate(-10deg)}60%{transform:scale(1.15)}100%{transform:none}}
.steps-track{display:none}
@media(prefers-reduced-motion:reduce){.step{opacity:1}.step.is-active .step-bar::before{animation:none;width:100%}}
/* FAQ : encart « plus de questions » + question à l'assistant */
.faq-more{margin-top:14px}
.faq-more h3{font-size:17px;margin-bottom:10px}
.faq-more details{border-top:1px solid var(--line)}
.faq-more details:first-of-type{border-top:0}
.faq-more summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;font-size:15px;font-weight:600;cursor:pointer;list-style:none}
.faq-more summary::-webkit-details-marker{display:none}
.faq-more summary::after{content:'+';font-size:18px;color:var(--muted)}
.faq-more details[open] summary::after{content:'−'}
.faq-more p{font-size:14px;color:var(--muted);padding-bottom:12px}
.faq-ask{display:flex;align-items:center;gap:12px;margin-top:0;padding:14px 16px;background:var(--gold);border-radius:var(--radius-sm);border:0;width:100%;text-align:left;font:inherit;cursor:pointer;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.faq-ask:hover{transform:translateY(-2px)}
.faq-ask .ico{flex:none;width:40px;height:40px;border-radius:50%;background:var(--white);display:grid;place-items:center}
.faq-ask .ico svg{width:20px;height:20px;fill:var(--ink)}
.faq-ask b{display:block;font-size:15px}
.faq-ask small{display:block;font-size:13px;color:var(--ink)}
/* Correctifs débordement mobile */
.config-grid,.estim-grid{min-width:0}
.config-grid>*,.estim-grid>*{min-width:0}
@media(max-width:900px){.map-frame{max-width:100%}}

/* Avis : deux colonnes qui défilent en sens opposé */
.mur-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.tel-text .lead{max-width:46ch;margin:12px 0 24px}
.tel-stats{display:flex;flex-wrap:wrap;gap:28px;margin-bottom:26px}
.tel-stats strong{display:block;font-size:34px;line-height:1;letter-spacing:-.02em}.tel-stats strong i{font-style:normal;font-size:18px;color:var(--gold-text)}
.tel-stats span{font-size:13px;color:var(--muted)}
.tel-text .avis-foot{justify-content:flex-start;margin-top:0}
.mur-colonnes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;height:clamp(420px,46vw,560px);overflow:clip;-webkit-mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent)}
.mur-col{display:flex;flex-direction:column;min-width:0}
.mur-piste{display:flex;flex-direction:column;gap:16px;padding-bottom:16px;animation:mur-haut 44s linear infinite}
.mur-piste-bas{animation-name:mur-bas}
.mur-colonnes:hover .mur-piste{animation-play-state:paused}
@keyframes mur-haut{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes mur-bas{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.avisc{margin:0;padding:18px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.avisc-h{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px}
.avisc-av{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-weight:800;font-size:16px}
.avisc-id{min-width:0}.avisc-id b{display:block;font-size:14px}.avisc-id small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.avisc-g{width:17px;height:17px}.avisc-g svg{width:100%;height:100%;display:block}
.avisc .avis-stars{display:block;margin-top:12px;color:var(--gold);letter-spacing:2px;font-size:14px;line-height:1}
.avisc blockquote{margin:10px 0 0;font-size:14.5px;line-height:1.5;color:var(--ink)}
.avisc-ph{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;margin-top:12px}
.avisc-photos{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}
.avisc-photos img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
@media(max-width:900px){.mur-grid{grid-template-columns:1fr}.mur-colonnes{height:460px}}
@media(prefers-reduced-motion:reduce){.mur-piste{animation:none}}
/* Du sol au toit : accordéon horizontal de photos */
.panneaux{list-style:none;margin:0;padding:0;display:flex;gap:10px;height:clamp(380px,44vw,540px)}
.panneau{position:relative;flex:1;min-width:0;border-radius:var(--radius);overflow:hidden;cursor:pointer;isolation:isolate;transition:flex 1.3s cubic-bezier(.76,0,.18,1)}
.panneau.is-active{flex:3.4}
.panneau img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.12);filter:saturate(.85);transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter 1s ease}
.panneau.is-active img{transform:scale(1);filter:none}
.panneau::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72) 100%)}
.panneau-num{position:absolute;z-index:2;top:16px;left:16px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--white);color:var(--ink);font-weight:700;transition:background .6s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.panneau.is-active .panneau-num{background:var(--gold);transform:scale(1.08)}
.panneau-body{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:20px;color:var(--white);transform:translateY(6px);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.panneau.is-active .panneau-body{transform:none}
.panneau h3{margin:0;font-size:clamp(18px,2vw,26px);color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panneau p{margin:8px 0 0;font-size:15px;line-height:1.5;max-width:44ch;opacity:0;max-height:0;overflow:hidden;transform:translateY(10px);transition:opacity .6s ease,max-height .9s cubic-bezier(.76,0,.18,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.panneau.is-active p{opacity:1;max-height:120px;transform:none;transition-delay:.35s,0s,.35s}
.strates-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:28px}
.build-stats{display:flex;flex-wrap:wrap;gap:28px}
@media(max-width:760px){.panneaux{flex-direction:column;height:auto}.panneau{flex:0 0 84px;height:84px;transition:flex .7s cubic-bezier(.2,.7,.2,1),height .7s cubic-bezier(.2,.7,.2,1)}.panneau.is-active{flex:0 0 320px;height:320px}.panneau-body{padding:16px}.panneau-num{width:36px;height:36px;top:12px;left:12px}}

/* SEO / accessibilité */
.skip{position:absolute;left:-999px;top:8px;z-index:500;padding:10px 14px;background:var(--gold);color:var(--ink);border-radius:10px;font-weight:600}
.skip:focus{left:8px}
.fil{margin:0 0 14px;font-size:13.5px;color:var(--muted)}
.fil ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.fil li+li::before{content:"›";margin-right:6px}
.fil a{color:var(--muted)}.fil a:hover{color:var(--ink)}
.fil [aria-current]{color:var(--ink);font-weight:500}
.contact-plus{max-width:62ch;color:var(--muted);margin:-6px 0 18px}
.rotator:not(.is-ready){background:var(--gold);padding:0 .14em;border-radius:8px;width:max-content;max-width:100%}
.head-center .rotator:not(.is-ready){margin-inline:auto}

/* ---- espace client réel + administration ---- */
.dash-verif{padding:14px 18px;border-radius:12px;background:#fff6e4;border:1.5px solid #f3d9a4;margin-bottom:18px;font-size:15px}
.dash-verif .auth-link{display:inline;padding:0;font-size:inherit}
.dash-chantier-bloc{margin-bottom:28px}
.dash-note-patron{margin-top:14px;padding:12px 16px;border-left:3px solid var(--gold,#f8c068);background:var(--soft-2,#faf8f3);border-radius:0 10px 10px 0;white-space:pre-line}
.btn.is-busy{opacity:.6;pointer-events:none}
.adm .auth-side .lead{max-width:48ch}
.adm-grid{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:start}
.adm-liste{position:sticky;top:96px;display:grid;gap:12px}
.adm-clients{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:70vh;overflow:auto}
.adm-clients button{width:100%;text-align:left;display:grid;gap:2px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--white);position:relative;transition:border-color .2s}
.adm-clients button:hover,.adm-clients button.is-active{border-color:var(--ink)}
.adm-clients button.is-off{opacity:.55}
.adm-clients small{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-badge{position:absolute;top:10px;right:12px;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--gold,#f8c068);color:var(--ink);font-style:normal;font-weight:600;font-size:12px;display:grid;place-items:center}
.adm-vide-liste{color:var(--muted);font-size:14px;padding:8px 2px}
.adm-detail{display:grid;gap:18px}
.adm-card{padding:22px 24px;border:1.5px solid var(--line);border-radius:var(--radius,18px);background:var(--white);display:grid;gap:14px}
.adm-card h2{font-size:22px;margin:0}
.adm-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.adm-actions{display:flex;gap:8px;flex-wrap:wrap}
.adm-danger{color:#a3271f;border-color:#e8b9b4}
.adm-danger:hover{border-color:#a3271f}
.adm-chantier{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px}
.adm-chantier.is-active{border-color:var(--ink);background:var(--soft-2,#faf8f3)}
.adm-chantier small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.adm-docform{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
#doc-liste li{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#doc-liste li>div{flex:1;min-width:0}
input[type=range]{width:100%;accent-color:var(--gold,#f8c068)}
.adm-mdp{max-width:640px}
@media (max-width:900px){.adm-grid{grid-template-columns:1fr}.adm-liste{position:static}.adm-clients{max-height:none}}

.devis-accord-btn{display:inline-block;margin-top:8px;font-size:14px}
.devis-accord{display:grid;gap:8px;margin-top:10px;padding:14px 16px;border:1.5px solid var(--gold);border-radius:12px;background:var(--soft-2,#faf8f3)}
.devis-accord .field{margin-top:0}
.devis-accord .field input{min-height:46px;font-size:15px}
.devis-accord .souvenir{font-size:14px}
.devis-accord .btn{justify-self:start}
#doc-liste li>div,.docs li>div{flex:1;min-width:0}

/* journal de chantier (espace client) */
.rapports{display:grid;gap:12px}
.rapport{display:grid;gap:8px;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--white)}
.rapport header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
.rapport header b{font-size:15px}.rapport header small{color:var(--muted)}
.rapport p{margin:0;white-space:pre-wrap;font-size:14.5px}
.rapport-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.rapport-photos a{display:block;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:var(--soft-2)}
.rapport-photos img{width:100%;height:100%;object-fit:cover;display:block}

/* 25/10 : ligne « Entreprise générale à Charleroi » dans le H1 ; listes numérotées des pages services */
.hero h1 .label{display:flex;width:max-content;line-height:1.2;margin-bottom:18px}
.legal-body ol{list-style:decimal;padding-left:22px;margin:12px 0}
.legal-body ol li+li{margin-top:6px}
.service-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.legal-body .service-cta{margin-top:18px}

/* 25/10 : un seul avis réel, carte centrée */
.avis-un{display:grid;justify-items:center}
.avis-un .avisc{width:100%;max-width:460px;padding:24px}
.avisc-lire{margin-top:14px;font-size:14px}
.avisc-lire a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:860px){.avis-un .avisc{max-width:none}}

/* Projets (futurs chantiers) */
.projet{margin-top:clamp(40px,6vw,72px);padding-top:clamp(28px,4vw,44px);border-top:1.5px solid var(--line)}
.projet-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 48px;margin-bottom:24px}
.projet-tete h2{font-size:clamp(28px,3.2vw,40px);letter-spacing:-.02em;margin:0}
.projet-tete .lead{max-width:46ch;font-size:17px}
.projet-etat{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;color:var(--muted)}
.projet-etat span{padding:5px 10px;border-radius:8px;background:var(--gold);color:var(--ink);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.galerie{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(180px,22vw,300px);gap:14px}
.galerie-item{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--soft-2)}
.galerie-item:first-child{grid-column:span 2;grid-row:span 2}
.galerie-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.galerie-item:hover img{transform:scale(1.04)}
.projet-cta{margin-top:22px}
@media(max-width:760px){.galerie{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(140px,28vw,220px)}.galerie-item:first-child{grid-column:span 2;grid-row:span 1}}
