.hero-devis{background:var(--color-surface-container-low);padding:32px 48px 48px;position:relative;overflow:hidden}.hero-devis__grid{grid-template-columns:60% 40%;align-items:center;gap:48px;max-width:1440px;margin:0 auto;display:grid}@media (max-width:1024px){.hero-devis__grid{grid-template-columns:1fr}.hero-devis__right{display:none}}.hero-devis__eyebrow{font:500 11px/1 var(--font-mono,ui-monospace);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin-bottom:18px;display:inline-block}.hero-devis__title{font-family:var(--font-headline);letter-spacing:-.018em;color:var(--color-on-surface);max-width:620px;margin:0 0 16px;font-size:48px;font-weight:500;line-height:1.12}.hero-devis__brushed{white-space:nowrap;display:inline-block;position:relative}.hero-devis__lede{font:400 17px/1.55 var(--font-body);color:var(--color-on-surface-variant);max-width:560px;margin:0 0 28px}.hero-devis__ctas{gap:14px;margin-bottom:22px;display:flex}.hero-devis__cta{font:500 15px/1 var(--font-body);border-radius:10px;align-items:center;gap:10px;padding:14px 22px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.hero-devis__cta--primary{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-premium,0 2px 8px #00000014)}.hero-devis__cta--secondary{color:var(--color-primary);border:1px solid color-mix(in oklch, var(--color-primary) 30%, transparent);background:0 0}.hero-devis__cta:hover{transform:translateY(-1px)}.hero-devis__arrow{transition:transform .2s}.hero-devis__cta:hover .hero-devis__arrow{transform:translate(3px)}.hero-devis__mentions{font:500 12px/1 var(--font-mono,ui-monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-surface-variant);gap:20px;margin:0;padding:0;list-style:none;display:flex}.hero-devis__mentions li:before{content:"✓";color:var(--color-tertiary-fixed-dim);margin-right:6px}.hero-devis__right{flex-direction:column;gap:24px;display:flex}.hero-devis__scene{aspect-ratio:1;width:100%;max-width:420px;margin:0 auto;position:relative}.hero-devis__scene svg{width:100%;height:100%;position:absolute;inset:0}.hero-devis__replay{background:var(--color-surface-container);border:1px solid var(--color-outline-variant,#ccc);cursor:pointer;width:36px;height:36px;color:var(--color-on-surface-variant);border-radius:999px;justify-content:center;align-items:center;transition:background-color .2s,color .2s;display:inline-flex;position:absolute;top:16px;right:16px}.hero-devis__replay:hover{background:var(--color-surface-container-high,#ebe6dc);color:var(--color-on-surface)}.hero-devis__replay .material-symbols-rounded{font-variation-settings:"FILL" 0, "wght" 500, "GRAD" 0, "opsz" 20;font-size:20px}.immeuble-svg .h-stroke{fill:none;stroke:var(--color-tertiary-fixed-dim);stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.immeuble-svg .h-stroke.post{stroke-width:1.5px}.immeuble-svg .h-stroke.roof{stroke-width:1.4px}.immeuble-svg .h-stroke.foot{stroke-width:1.6px}.immeuble-svg .h-cote{font-family:var(--font-mono);fill:var(--color-on-surface-variant);letter-spacing:.08em;font-size:9px;font-weight:500}.immeuble-svg .h-label{font-family:var(--font-mono);fill:var(--color-primary);letter-spacing:.18em;text-transform:uppercase;font-size:8.5px;font-weight:600}.immeuble-svg .foot-fill{fill:var(--color-tertiary-fixed-dim);fill-opacity:0}.immeuble-svg .roof-fill{fill:var(--color-tertiary);fill-opacity:0}.immeuble-svg .fac-fill{fill-opacity:0}.immeuble-svg .facA-fill{fill:var(--color-tertiary-fixed-dim)}.immeuble-svg .facB-fill{fill:var(--color-tertiary)}.immeuble-svg[data-phase=idle] .h-stroke{stroke-dasharray:var(--plen,400);stroke-dashoffset:var(--plen,400)}.immeuble-svg[data-phase=idle] .foot-fill,.immeuble-svg[data-phase=idle] .roof-fill,.immeuble-svg[data-phase=idle] .fac-fill{fill-opacity:0}.immeuble-svg[data-phase=idle] .h-cote,.immeuble-svg[data-phase=idle] .h-label{opacity:0}@keyframes hausDraw{0%{stroke-dashoffset:var(--plen,400)}to{stroke-dashoffset:0}}@keyframes footTint{0%{fill-opacity:0}to{fill-opacity:.14}}@keyframes roofTint{0%{fill-opacity:0}to{fill-opacity:.22}}@keyframes facATint{0%{fill-opacity:0}to{fill-opacity:.12}}@keyframes facBTint{0%{fill-opacity:0}to{fill-opacity:.09}}@keyframes markIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.immeuble-svg[data-phase=enter] .h-stroke,.immeuble-svg[data-phase=final] .h-stroke,.immeuble-svg[data-phase=zoom] .h-stroke,.immeuble-svg[data-phase=zoom-final] .h-stroke{animation:.5s cubic-bezier(.22,.61,.36,1) both hausDraw;animation-delay:calc(.4s + var(--drawi,0) * .11s)}.immeuble-svg[data-phase=enter] .foot-fill{animation:.5s ease-out 1s both footTint}.immeuble-svg[data-phase=enter] .facA-fill{animation:.6s ease-out 2.7s both facATint}.immeuble-svg[data-phase=enter] .facB-fill{animation:.6s ease-out 2.8s both facBTint}.immeuble-svg[data-phase=enter] .roof-fill{animation:.6s ease-out 2.9s both roofTint}.immeuble-svg[data-phase=enter] .h-cote,.immeuble-svg[data-phase=enter] .h-label{animation:.45s cubic-bezier(.16,1,.3,1) 3s both markIn}}.immeuble-svg[data-phase=final] .h-stroke,.immeuble-svg[data-phase=zoom] .h-stroke,.immeuble-svg[data-phase=zoom-final] .h-stroke{stroke-dashoffset:0!important}.immeuble-svg[data-phase=final] .foot-fill,.immeuble-svg[data-phase=zoom] .foot-fill,.immeuble-svg[data-phase=zoom-final] .foot-fill{fill-opacity:.14}.immeuble-svg[data-phase=final] .facA-fill,.immeuble-svg[data-phase=zoom] .facA-fill,.immeuble-svg[data-phase=zoom-final] .facA-fill{fill-opacity:.12}.immeuble-svg[data-phase=final] .facB-fill,.immeuble-svg[data-phase=zoom] .facB-fill,.immeuble-svg[data-phase=zoom-final] .facB-fill{fill-opacity:.09}.immeuble-svg[data-phase=final] .roof-fill,.immeuble-svg[data-phase=zoom] .roof-fill,.immeuble-svg[data-phase=zoom-final] .roof-fill{fill-opacity:.22}.immeuble-svg[data-phase=final] .h-cote,.immeuble-svg[data-phase=final] .h-label,.immeuble-svg[data-phase=zoom] .h-cote,.immeuble-svg[data-phase=zoom] .h-label,.immeuble-svg[data-phase=zoom-final] .h-cote,.immeuble-svg[data-phase=zoom-final] .h-label{opacity:1}@media (prefers-reduced-motion:no-preference){.immeuble-svg .haus-wrap,.immeuble-svg .marks{transition:opacity .7s cubic-bezier(.65,0,.35,1)}}.immeuble-svg[data-phase=zoom] .haus-wrap,.immeuble-svg[data-phase=zoom-final] .haus-wrap,.immeuble-svg[data-phase=zoom] .marks,.immeuble-svg[data-phase=zoom-final] .marks{opacity:0}.brush-underline{pointer-events:none;width:100%;height:18px;position:absolute;bottom:-4px;left:0}.brush-underline path{fill:none;stroke:var(--color-tertiary-fixed-dim);stroke-width:8px;stroke-linecap:round;stroke-dasharray:var(--plen,300);stroke-dashoffset:var(--plen,300)}@keyframes brushReveal{0%{stroke-dashoffset:var(--plen,300)}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:no-preference){.brush-underline[data-phase=enter] path,.brush-underline[data-phase=final] path,.brush-underline[data-phase=zoom] path,.brush-underline[data-phase=zoom-final] path{animation:.7s cubic-bezier(.4,0,.2,1) 3.2s both brushReveal}}.brush-underline[data-phase=final] path,.brush-underline[data-phase=zoom] path,.brush-underline[data-phase=zoom-final] path{stroke-dashoffset:0}.zoom-scene{pointer-events:none;opacity:0}.zoom-scene[data-phase=zoom],.zoom-scene[data-phase=zoom-final]{opacity:1}.zoom-scene .z-room,.zoom-scene .z-paint,.zoom-scene .z-painter,.zoom-scene .z-floor,.zoom-scene .z-moulure{opacity:0}.zoom-scene[data-phase=zoom] .z-room,.zoom-scene[data-phase=zoom] .z-floor,.zoom-scene[data-phase=zoom] .z-moulure,.zoom-scene[data-phase=zoom] .z-painter,.zoom-scene[data-phase=zoom] .z-paint,.zoom-scene[data-phase=zoom-final] .z-room,.zoom-scene[data-phase=zoom-final] .z-floor,.zoom-scene[data-phase=zoom-final] .z-moulure,.zoom-scene[data-phase=zoom-final] .z-painter,.zoom-scene[data-phase=zoom-final] .z-paint{opacity:1}@media (prefers-reduced-motion:no-preference){.zoom-scene .z-room,.zoom-scene .z-paint,.zoom-scene .z-painter,.zoom-scene .z-floor,.zoom-scene .z-moulure{transition:opacity .6s cubic-bezier(.16,1,.3,1)}.zoom-scene .z-floor{transition-delay:.2s}.zoom-scene .z-moulure{transition-delay:.3s}.zoom-scene .z-painter{transition-delay:.5s}.zoom-scene #paintClipRect{transition:width 1.4s cubic-bezier(.4,0,.2,1)}}
