
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400;700&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');
:root{--bg:#171d19;--panel:#202820;--paper:#f3f1e7;--muted:#b6beb0;--line:#3e483a;--green:#b5c936;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--max:1320px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto}button{color:inherit}a,button,input,textarea,select{outline-offset:6px}:focus-visible{outline:2px solid var(--green)}[hidden]{display:none!important}::selection{background:var(--green);color:var(--bg)}.wrap{width:min(calc(100% - 100px),var(--max));margin-inline:auto}.skip{position:fixed;z-index:100;top:-100px;left:16px;padding:12px;background:var(--green);color:#182017}.skip:focus{top:12px}.site-header{position:fixed;top:0;left:0;right:0;z-index:40;border-bottom:1px solid #ffffff30;background:rgba(17,24,18,.96)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:35px;min-height:108px}.brand{display:block;flex:0 0 128px}.brand img{width:128px;mix-blend-mode:screen}.nav{display:flex;align-items:center;gap:34px}.nav a{position:relative;font-size:12px;letter-spacing:.09em;text-transform:uppercase;padding:12px 0}.nav a:not(.nav-contact):after{position:absolute;content:'';left:0;bottom:5px;width:0;height:1px;background:var(--green);transition:width .25s}.nav a:hover:after,.nav a[aria-current=page]:after{width:100%}.nav a[aria-current=page]{color:var(--green)}.nav .nav-contact{border:1px solid #ffffff55;padding:12px 18px}.nav-contact:hover{background:var(--green);color:var(--bg);border-color:var(--green)}.toggle{display:none;background:none;border:0;width:44px;height:44px;padding:8px}.toggle span{display:block;height:1px;margin:7px 0;background:var(--paper);transition:.25s}.hero{position:relative;isolation:isolate;min-height:900px;height:100svh;max-height:1150px;display:flex;align-items:center;justify-content:center;text-align:center;padding:175px 30px 150px;background:#232a22}.hero-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 56%}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#111a17e8 0%,#121c1766 40%,#1017134a 73%,#10171377),linear-gradient(90deg,#10211b55,#10211b11)}.hero-copy{max-width:1020px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;display:flex;gap:14px;align-items:center;color:var(--green);margin:0 0 27px}.eyebrow:before{content:'';display:block;width:30px;height:1px;background:var(--green)}.hero .eyebrow{justify-content:center;color:#f1f4da}.hero .eyebrow:before{display:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12}h1{font-size:clamp(64px,7.2vw,108px);letter-spacing:-.05em;margin-bottom:32px}h1 em,h2 em{font-weight:400;color:var(--green)}.hero-lead{max-width:510px;margin:0 auto 34px;font-size:15px;line-height:1.8;color:#e2e8df}.actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:24px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:54px;padding:15px 22px;background:var(--green);border:1px solid var(--green);color:#182014;font-size:11px;letter-spacing:.085em;text-transform:uppercase;font-weight:700;transition:background .2s,transform .2s}.button:hover{background:#c8d94e;transform:translateY(-2px)}.button.secondary{background:transparent;border-color:#75816a;color:var(--paper)}.button.secondary:hover{background:#ffffff12}.arrow{font-size:20px;font-weight:400;line-height:1}.text-link{display:inline-flex;gap:26px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid #ffffff50;padding:12px 0}.text-link:hover{color:var(--green);border-color:var(--green)}.hero-foot{position:absolute;bottom:36px;left:50px;right:50px;display:flex;justify-content:space-between;align-items:end;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#d9e0d3}.hero-foot a{display:flex;gap:15px;align-items:center}.round-arrow{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff55;border-radius:50%;font-size:18px}.photo-credit{border-left:1px solid var(--green);padding-left:18px;line-height:1.9}.photo-credit b{font-weight:400;color:var(--green)}.section{padding:110px 0}.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:start}.section h2{font-size:clamp(38px,4.2vw,62px);letter-spacing:-.035em}.intro-text{padding-top:51px;color:var(--muted);font-size:16px}.intro-text .text-link{color:var(--paper);margin-top:14px}.services{display:grid;grid-template-columns:repeat(3,1fr);margin-top:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service{padding:30px 30px 35px;position:relative;border-right:1px solid var(--line);transition:background .2s}.service:first-child{padding-left:0}.service:last-child{border:0}.service:hover{background:#ffffff04}.service .number{font-size:10px;letter-spacing:.13em;color:var(--green);display:block;margin-bottom:28px}.service h3{font-size:26px;margin-bottom:13px}.service p{font-size:13px;color:var(--muted);max-width:300px;margin:0}.service .arrow{position:absolute;top:27px;right:28px;color:var(--green)}.projects-section{background:var(--panel)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}.section-heading h2{margin-bottom:0}.section-heading p{max-width:430px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:44px 32px}.project-grid.featured .project:nth-child(2){margin-top:100px}.project-grid.featured .project:nth-child(3){grid-column:1/-1}.project-grid.featured .project:nth-child(3)>button{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.project-grid.featured .project:nth-child(3) .project-image{aspect-ratio:1.75}.project-image{position:relative;overflow:hidden;aspect-ratio:1.42;background:#313b2e}.project-image img{height:100%;object-fit:cover;transition:transform .7s}.project:hover img{transform:scale(1.035)}.project-open{position:absolute;right:20px;bottom:20px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #ffffff8a;border-radius:50%;background:#111e1750;font-size:24px;transition:background .2s}.project:hover .project-open{background:var(--green);border-color:var(--green);color:var(--bg)}.project button{border:0;background:none;padding:0;text-align:left;width:100%;display:block}.project-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:21px}.project-meta h3{font-size:27px;margin:0}.project-meta p{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:5px 0 0}.project-index{color:#89977b;font-size:11px;letter-spacing:.1em}.project-grid.featured .project:nth-child(3) .project-meta{padding:0 35px}.project-grid.featured .project:nth-child(3) .project-meta h3{font-size:40px}.project-grid.featured .project:nth-child(3) .project-meta:before{content:'03 /';color:var(--green);font-size:11px;align-self:start;margin-top:14px}.project-grid.featured .project:nth-child(3) .project-index{display:none}.approach{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.approach-image{position:relative;padding-right:32px;padding-bottom:32px}.approach-image:before{content:'';position:absolute;bottom:0;right:0;width:80%;height:80%;border:1px solid #526340}.approach-image img{position:relative;aspect-ratio:.95;object-fit:cover;filter:grayscale(1)}.approach p{color:var(--muted)}.approach .text-link{margin-top:15px;color:var(--paper)}.territory{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);border-top:1px solid var(--line);padding-top:25px;margin-top:35px}.cta{padding:85px 0;background:var(--green);color:#192014}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:55px}.cta .eyebrow{color:#33401f;margin-bottom:20px}.cta .eyebrow:before{background:#33401f}.cta h2{font-size:clamp(36px,4vw,60px);letter-spacing:-.04em;margin:0;max-width:700px}.cta .button{background:#1b251c;color:var(--paper);border-color:#1b251c;flex-shrink:0}.footer{padding:65px 0 24px;background:#111812}.footer-main{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:80px}.footer-logo{width:150px;mix-blend-mode:screen;margin-bottom:20px}.footer p,.footer a{font-size:13px;color:#b2bea9}.footer a:hover{color:var(--green)}.footer h3{font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.17em;margin:15px 0 22px}.footer ul{list-style:none;margin:0;padding:0}.footer li{margin:8px 0}.footer-bottom{margin-top:55px;border-top:1px solid #303c2c;padding-top:23px;display:flex;justify-content:space-between;gap:20px;color:#8e9e84;font-size:10px;letter-spacing:.05em}.page-top{position:relative;padding:190px 0 78px;background:var(--panel);overflow:hidden}.page-top h1{font-size:clamp(48px,6.2vw,90px);max-width:1020px;margin-bottom:28px}.page-top .lead{max-width:660px;color:var(--muted);font-size:17px}.page-top:after{content:'ELGY';position:absolute;right:-20px;bottom:-90px;font:230px var(--serif);letter-spacing:-.05em;color:#ffffff03;pointer-events:none}.crumb{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#a5b39b;margin-bottom:35px}.content-split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.content-split.reverse .visual{order:2}.content-split h2{font-size:44px}.content-split p{color:var(--muted)}.content-split .visual img{aspect-ratio:1.2;object-fit:cover}.content-split + .content-split{margin-top:100px}.detail-list{list-style:none;padding:0;margin:30px 0;border-top:1px solid var(--line)}.detail-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:13px;color:#ced6c7}.detail-list li:before{content:'';display:inline-block;width:12px;height:1px;background:var(--green);vertical-align:middle;margin-right:15px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:45px}.step{border-top:1px solid var(--line);padding-top:28px}.step b{font-size:11px;color:var(--green);font-weight:400}.step h3{font-size:25px;margin:28px 0 18px}.step p{font-size:13px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px}.filter{background:none;border:1px solid var(--line);padding:10px 17px;font-size:11px;letter-spacing:.05em;color:var(--muted)}.filter.active,.filter:hover{background:var(--green);border-color:var(--green);color:#192014}.results-count{font-size:11px;letter-spacing:.08em;color:var(--muted);margin:0 0 30px}.portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:45px 30px}.note{padding:30px;border-left:2px solid var(--green);background:var(--panel);color:var(--muted)}.note h3{color:var(--paper);font-size:29px}.note p{margin-bottom:0}.contact-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:100px}.contact-layout h2{font-size:35px}.contact-large{display:block;font-family:var(--serif);font-size:30px;color:var(--paper);line-height:1.4;margin:15px 0}.contact-layout .contact-email{font-size:14px;overflow-wrap:anywhere}.contact-layout address{font-style:normal;color:var(--muted);margin:30px 0;font-size:14px}.hours{font-size:13px;color:var(--muted)}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:10px;letter-spacing:.1em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid #59634e;background:#202820;color:var(--paper);padding:13px;border-radius:0;min-width:0}.field textarea{min-height:150px;resize:vertical}.field-full{grid-column:1/-1}.form-note{font-size:12px;color:var(--muted);margin:0}.mail-preview{padding:25px;background:var(--panel);border:1px solid var(--line);margin-top:25px}.mail-preview pre{white-space:pre-wrap;font:13px var(--sans);color:var(--muted)}.project-dialog{padding:0;border:1px solid #506044;background:#141c15;color:var(--paper);width:min(1150px,94vw);max-height:94svh;overflow:auto}.project-dialog::backdrop{background:#070d09eb;backdrop-filter:blur(8px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--line)}.dialog-top h2{margin:0;font-size:25px}.icon-button{background:none;border:1px solid #77856e;width:42px;height:42px;display:grid;place-items:center;font-size:23px}.dialog-image{width:100%;height:min(65vh,650px);object-fit:contain;background:#0d130e}.dialog-bottom{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}.dialog-bottom p{font-size:12px;color:var(--muted);margin:0}.dialog-controls{display:flex;gap:10px}.dialog-controls button:disabled{opacity:.35;cursor:default}.dialog-open{overflow:hidden}.fade-in{animation:appear .9s both}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1700px){.hero{min-height:950px}.hero-photo{object-position:center 60%}}
@media(max-width:1050px){.wrap{width:calc(100% - 56px)}.nav{gap:20px}.nav a{font-size:10px}.brand,.brand img{width:108px;flex-basis:108px}.header-inner{gap:20px}.intro-grid,.approach{gap:55px}.hero{min-height:800px}.hero-foot{left:28px;right:28px}.contact-layout{gap:55px}.footer-main{gap:45px}.project-grid.featured .project:nth-child(3) .project-meta{padding:0}.content-split{gap:40px}}
@media(max-width:800px){.header-inner{min-height:88px}.brand,.brand img{width:105px;flex-basis:105px}.toggle{display:block;z-index:52}.toggle[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}.toggle[aria-expanded=true] span:last-child{transform:translateY(-8px) rotate(-45deg)}.nav{display:none;position:fixed;inset:0;padding:110px 30px 50px;background:#141d16;flex-direction:column;justify-content:center;gap:18px;z-index:51}.nav.open{display:flex}.nav a{font-family:var(--serif);font-size:32px;letter-spacing:0;text-transform:none}.nav .nav-contact{font-family:var(--sans);font-size:12px;letter-spacing:.08em;margin-top:20px}.menu-open{overflow:hidden}.hero{min-height:780px;height:100svh;padding:150px 28px}.hero h1{font-size:70px}.hero-foot{font-size:9px}.hero-lead{font-size:14px}.section{padding:78px 0}.intro-grid,.approach,.content-split,.contact-layout{grid-template-columns:1fr;gap:30px}.intro-text{padding-top:0}.services{margin-top:45px;grid-template-columns:1fr}.service,.service:first-child{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.service .number{margin-bottom:16px}.service .arrow{right:5px}.service p{max-width:550px}.project-grid.featured{gap:35px}.project-grid.featured .project:nth-child(2){margin-top:0}.project-grid.featured .project:nth-child(3){display:block;grid-column:auto}.project-grid.featured .project:nth-child(3)>button{display:block}.project-grid.featured .project:nth-child(3) .project-meta{padding-top:21px}.project-grid.featured .project:nth-child(3) .project-meta:before{display:none}.project-grid.featured .project:nth-child(3) .project-meta h3{font-size:27px}.project-grid.featured .project:nth-child(3) .project-image{aspect-ratio:1.42}.project-grid.featured .project:nth-child(3) .project-index{display:block}.project-grid,.portfolio-grid{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column;gap:18px}.approach-image{max-width:650px}.cta .wrap{flex-direction:column;align-items:start;gap:30px}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-main>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:8px}.content-split.reverse .visual{order:0}.content-split + .content-split{margin-top:70px}.steps{grid-template-columns:1fr 1fr}.page-top{padding:150px 0 55px}.page-top h1{font-size:57px}.page-top .lead{font-size:15px}.contact-layout{gap:45px}.dialog-top{padding:13px 16px}.dialog-top h2{font-size:22px}.dialog-image{height:55vh}}
@media(max-width:480px){.wrap{width:calc(100% - 36px)}.hero{min-height:760px;padding-inline:18px;padding-top:138px;padding-bottom:148px}.hero h1{font-size:clamp(46px,13vw,65px);margin-bottom:25px}.hero .eyebrow{font-size:8px;letter-spacing:.17em;max-width:290px;margin:0 auto 25px}.hero-lead{font-size:13px;max-width:310px}.actions{gap:15px}.hero-foot{left:18px;right:18px;bottom:24px;gap:20px}.hero-foot .photo-credit{font-size:8px;padding-left:10px;max-width:145px}.round-arrow{width:33px;height:33px}.hero-foot a{gap:8px;font-size:8px}.button{font-size:10px;gap:18px}.section h2{font-size:39px}.section{padding:64px 0}.project-meta h3{font-size:25px}.project-meta p{font-size:9px}.project-index{font-size:10px}.approach-image{padding-right:20px;padding-bottom:20px}.steps{grid-template-columns:1fr;gap:20px}.step h3{margin-top:15px}.footer-main{grid-template-columns:1fr}.footer-main>div:first-child{grid-column:auto}.contact-form{grid-template-columns:1fr}.field-full{grid-column:1}.contact-large{font-size:28px}.content-split h2{font-size:36px}.filters{gap:7px}.filter{padding:9px 12px;font-size:10px}.page-top h1{font-size:46px}.dialog-bottom{padding:14px}.dialog-bottom p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Plan ELGY d’origine : tracé vert sur fond noir, propre à Conception. */
.plans-background{background-color:#1c1c1c;background-image:url('plan-elgy.png');background-repeat:no-repeat;background-position:right -200px top 108px;background-attachment:fixed}
.plans-background .page-top{background:transparent}
.plans-background .page-top:after{display:none}
.plans-background .content-split>div:not(.visual){background:rgba(28,28,28,.88);padding:28px}
.plans-background .page-top .lead{color:#d5d9ce}
@media(max-width:800px){.plans-background{background-attachment:scroll;background-size:850px auto;background-position:right -340px top 100px;background-image:linear-gradient(90deg,rgba(28,28,28,.87),rgba(28,28,28,.42)),url('plan-elgy.png')}.plans-background .content-split>div:not(.visual){padding:22px}.plans-background .page-top{background:rgba(28,28,28,.12)}}

/* Animation de bienvenue issue du site ELGY, classes isolées. */
.intro-anim{
    position: relative;
    overflow: hidden;
}

.intro-reflet::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    bottom: -50%;
    left: -50%;
    background: linear-gradient(to bottom, rgba(229, 172, 142, 0), rgba(255,255,255,0.5) 50%, rgba(229, 172, 142, 0));
    transform: rotateZ(60deg) translate(-30%, 150%);
    z-index: 6;
    animation: sheen 1.2s forwards;
    animation-delay: 7.5s;    
}


@keyframes sheen {
    100% {
    transform: rotateZ(60deg) translate(10%, -150%);
    }
}

.intro-logo{
    position: relative;
    width: 100%;
    z-index: 3;
}

.intro-logo-e{
    position: absolute;
    width: 100%;
    z-index: 5;
    left: 0%;
    -webkit-animation-name: fadeInOpacity;
    animation-name: fadeInOpacity;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    -webkit-animation-duration: 2s;
    animation-duration: 3.5s;
}

@-webkit-keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
        }

@keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
        }


.intro-logo-l{
    position: absolute;
    width: 100%;
    z-index: 5;
    left: 0%;
    top: 0%;
    
}

.intro-logo-l{
    position: absolute;
    width: 100%;
    z-index: 5;
    left: 0%;
    top: 0%;
    -webkit-animation-name: fadeInOpacity;
    animation-name: fadeInOpacity;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    -webkit-animation-duration: 2s;
    animation-duration: 4.5s;
}

@-webkit-keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
        }

@keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
    }
    


.intro-logo-g{
    position: absolute;
    width: 100%;
    z-index: 5;
    left: 0%;
    top: 0%;
    -webkit-animation-name: fadeInOpacity;
    animation-name: fadeInOpacity;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    -webkit-animation-duration: 2s;
    animation-duration: 5.5s;
}

@-webkit-keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
        }

@keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
    }



.intro-logo-ec{
    position: absolute;
    width: 100%;
    z-index: 5;
    left: 0%;
    top: 0%;
    
    border-radius: 4px;
    box-shadow: inset 0 -0.125em 0.5em 0 rgba(0,0,0,0.4),0 3px 2px -2px rgba(255,255,255,0.075);
    padding: 5px;
    -webkit-animation-name: fadeInOpacity;
    animation-name: fadeInOpacity;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    -webkit-animation-duration: 2s;
    animation-duration: 6.5s;
    
}

@-webkit-keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
        }

@keyframes fadeInOpacity {
    0% {
        opacity: 0;
        }
    75% {
        opacity: 0;
        }
    100% {
        opacity: 1;
        }
    }



.intro-anim1::before {
    display: block;
    position: absolute;
	content: '';
	top: 72.5%;
	left: -900px;
	width: 67%;
	height: 7%;
    background: #b5c936;
    animation: 0.5s linear 1s anim;
    animation-fill-mode: forwards;
    z-index: 1;
}
@keyframes anim {
    from {left:-50%;}
	to {left:18%;}
}

.intro-anim2::before {
    display: block;
    position: absolute;
	content: '';
    left: 70%;
	bottom: -50%;
	width: 25%;
	height: 50%;
    background: #b5c936;
    animation: 1s linear 1s anim2;
    animation-fill-mode: forwards;
    z-index: 1;
}
@keyframes anim2 {
    from {bottom:-70%;}
	to {bottom:22%;}
}

.intro-anim3::before {
    display: block;
    position: absolute;
	content: '';
	top: 10%;
	right: -500px;
	width: 70%;
	height: 50%;
    background: #b5c936;
    animation: 0.5s linear 1.9s anim3;
    animation-fill-mode: forwards;
    z-index: 1;
}
@keyframes anim3 {
    from {right:-50%;}
	to {right:22%;}
}

.intro-anim4::before {
    display: block;
    position: absolute;
    content: '';
    background: #1c1c1c;
    bottom: -3%;
    left: 68%;
    width: 30%;
    height: 7%;
    z-index: 2;
}


:root{--bg:#1c1c1c;--panel:#1c1c1c;--muted:#b9bbb5;--line:#393b35}
.site-header{background:#1c1c1c;border-bottom:1px solid #373931;box-shadow:0 3px 12px #0003}
.header-inner{min-height:122px;gap:35px}.brand{flex-basis:155px}.brand img{width:155px;mix-blend-mode:normal}.footer-logo{mix-blend-mode:normal}
.heritage-nav{flex:1;gap:0;justify-content:space-between;min-width:0}
.heritage-nav .menu__item{--menu-item-color:#b5c936;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;flex:1;min-width:0;padding:20px 5px;letter-spacing:0;text-transform:none;white-space:nowrap;isolation:isolate}
.heritage-nav .menu__item:after{display:none!important}
.heritage-nav .menu__item-name{position:relative;padding:5px 4px;font-family:'Playfair Display',Georgia,serif;font-size:18px;font-weight:700;line-height:1.2;color:#f4f3eb;z-index:1}
.heritage-nav .menu__item-name:before{content:'';position:absolute;inset:52% 0 0;z-index:-1;background:var(--green);transform:scaleY(0);transform-origin:bottom;transition:transform .3s}
.heritage-nav .menu__item:hover .menu__item-name:before,.heritage-nav .menu__item:focus-visible .menu__item-name:before{transform:scaleY(1)}
.heritage-nav .menu__item-label{font-family:'Caveat',cursive;font-size:24px;font-weight:400;color:#85877b;line-height:1.2;margin:10px 0 0;display:flex;white-space:pre}
.heritage-nav .menu__item-label span{display:inline-block}
.heritage-nav .menu__item[aria-current=page] .menu__item-name{color:var(--green)}
.heritage-separator{position:relative;flex:0 0 26px;align-self:stretch;pointer-events:none}
.heritage-separator:before{content:'';position:absolute;width:100px;height:1px;left:calc(50% - 8px);top:50%;background:#45473e;box-shadow:0 -3px 3px #000;transform:translate(-50%,-50%) rotate(45deg);transition:transform .7s,background .7s}
.menu__item:hover+.heritage-separator:before{background:var(--green);transform:translate(calc(-50% + 10px),-50%) rotate(45deg)}
.hero{background:#1c1c1c}.hero:after{background:linear-gradient(0deg,#1c1c1c 0%,#1c1c1c66 42%,#1c1c1c66)}
.projects-section,.page-top,.footer{background:#1c1c1c}.projects-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cta{background:#1c1c1c;color:var(--paper);padding:70px 0}.cta .wrap{border-top:1px solid var(--line);padding-top:55px}.cta .eyebrow{color:var(--green)}.cta .eyebrow:before{background:var(--green)}.cta .button{background:transparent;color:var(--paper);border:1px solid #77834b}.cta .button:hover{background:var(--green);color:#1c1c1c}.cta h2{font-size:clamp(34px,3.6vw,52px)}.footer{border-top:1px solid #30322c}
.note,.field input,.field textarea,.field select,.mail-preview{background:#252525}.project-dialog{background:#1c1c1c}.dialog-image{background:#171717}
.welcome{min-height:100svh;padding:165px 25px 55px;display:grid;place-items:center;background:#1c1c1c;text-align:center}.welcome-inner{width:min(720px,100%)}.welcome .eyebrow{justify-content:center;color:#a4a695;margin-bottom:26px}.welcome .eyebrow:before{display:none}.intro-mark{width:min(620px,100%);margin:auto}.intro-anim{position:relative;overflow:hidden}.intro-logo-e,.intro-logo-l,.intro-logo-g,.intro-logo-ec{top:0;animation:welcome-layer .6s both}.intro-logo-e{animation-delay:.5s}.intro-logo-l{animation-delay:1s}.intro-logo-g{animation-delay:1.5s}.intro-logo-ec{animation-delay:2s}.intro-reflet:after{animation-delay:2.8s}.intro-logo-ec{box-shadow:none;border-radius:0;padding:0}.welcome-tagline{font-family:var(--serif);font-size:25px;color:#d2d3c8;margin:30px 0}.welcome-enter{display:inline-flex;flex-direction:column;gap:15px;align-items:center;color:var(--green);font-size:11px;letter-spacing:.17em;text-transform:uppercase;padding:12px}.welcome-enter span{font-size:27px;color:var(--paper)}@keyframes welcome-layer{from{opacity:0}to{opacity:1}}
html{scroll-padding-top:140px}
@media(max-width:1200px) and (min-width:801px){.header-inner{gap:18px}.brand{flex-basis:115px}.brand img{width:115px}.heritage-nav .menu__item-name{font-size:14px}.heritage-nav .menu__item-label{font-size:19px}.heritage-separator{flex-basis:17px}.heritage-separator:before{width:70px}}
@media(max-width:800px){.header-inner{min-height:88px}.brand{flex-basis:110px}.brand img{width:110px}.heritage-nav{background:#1c1c1c;flex:none;gap:8px}.heritage-nav .menu__item{flex:0 0 auto;padding:12px;width:100%}.heritage-nav .menu__item-name{font-size:24px}.heritage-nav .menu__item-label{font-size:23px;margin-top:7px}.heritage-separator{display:none}.welcome{padding:130px 25px 45px}.welcome-tagline{font-size:23px}.intro-mark{max-width:520px}html{scroll-padding-top:108px}}
@media(prefers-reduced-motion:reduce){.intro-logo-e,.intro-logo-l,.intro-logo-g,.intro-logo-ec{opacity:1}.intro-reflet:after{display:none}.intro-anim1,.intro-anim2,.intro-anim3{display:none}}

.welcome .welcome-inner{transition:opacity .7s ease,transform .95s cubic-bezier(.7,0,.3,1)}.welcome.revealed .welcome-inner{opacity:0;transform:translateY(-80px) scale(.96);pointer-events:none}
@media(prefers-reduced-motion:reduce){.welcome .welcome-inner{transition:none}}

/* Démarrer les mouvements seulement lorsque les calques du logo sont prêts. */
.welcome:not(.intro-started) .intro-mark *,.welcome:not(.intro-started) .intro-mark *:before,.welcome:not(.intro-started) .intro-mark *:after{animation-play-state:paused}

/* Un seul reflet traverse toute la composition d'ouverture. */
.welcome{position:relative;isolation:isolate;overflow:hidden}
.welcome .intro-reflet:after{display:none}
.welcome:after{content:'';position:absolute;inset:0;z-index:10;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.025) 40%,rgba(255,255,255,.17) 50%,rgba(255,255,255,.025) 60%,transparent 70%);transform:translateX(-140%);opacity:0}
.welcome.intro-started:after{animation:welcome-wide-reflection 2.2s 2.8s both cubic-bezier(.4,0,.2,1)}
.welcome.revealed:after{display:none}
@keyframes welcome-wide-reflection{0%{transform:translateX(-140%);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateX(140%);opacity:0}}
@media(prefers-reduced-motion:reduce){.welcome:after{display:none}}
/* Retrouver la transition d'ouverture ELGY par-dessus la page. */
.welcome{position:absolute;top:0;left:0;width:100%;z-index:30;transform-origin:50% 0;transition:opacity 1.2s cubic-bezier(.7,0,.3,1),transform 1.2s cubic-bezier(.7,0,.3,1)}
.welcome.revealed{opacity:0;transform:translateY(-100%) scale(.9);pointer-events:none}
.welcome.revealed .welcome-inner{opacity:1;transform:none}
.welcome + .hero{opacity:0;transform:translateY(400px);transition:opacity 1s,transform 1s}
.welcome.revealed + .hero{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.welcome,.welcome + .hero{transition:none}}

/* Des invitations plus lisibles autour du logo d'ouverture. */
.welcome .eyebrow{font-family:var(--serif);font-size:clamp(23px,2.4vw,34px);font-weight:400;line-height:1.3;letter-spacing:.045em;text-transform:none;color:#f0f0e8;margin-bottom:28px}
.welcome-enter{font-size:14px;font-weight:600;letter-spacing:.12em;color:#d1df75;gap:12px;padding:16px 28px;border-top:1px solid #b5c93666;transition:color .25s,border-color .25s}
.welcome-enter span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #b5c93688;border-radius:50%;font-size:26px;line-height:1;color:#c4d650;transition:transform .25s,background .25s}
.welcome-enter:hover,.welcome-enter:focus-visible{color:#f0f0e8;border-color:#b5c936}
.welcome-enter:hover span,.welcome-enter:focus-visible span{transform:translateY(4px);background:#b5c93618}
.welcome-enter:focus-visible{outline:2px solid #b5c936;outline-offset:6px}
@media(max-width:800px){.welcome .eyebrow{font-size:25px;margin-bottom:24px}.welcome-enter{font-size:13px;padding:14px 22px}.welcome-tagline{margin:24px 0}}
@media(prefers-reduced-motion:reduce){.welcome-enter,.welcome-enter span{transition:none}}
/* Accueil plein écran avec le dégradé couvrant toute la photographie. */
#decouvrir.hero{height:100svh;min-height:760px;max-height:none}
#decouvrir.hero:after{background:linear-gradient(0deg,#111a17e8 0%,#121c1766 40%,#1017134a 73%,#10171377),linear-gradient(90deg,#10211b55,#10211b11)}
@media(max-width:800px){#decouvrir.hero{min-height:700px}}
/* Repères de navigation et sous-titres des pages plus lisibles. */
.page-top .crumb{font-size:14px;line-height:1.6;letter-spacing:.07em;color:#d8dccb}
.page-top .eyebrow{font-size:15px;line-height:1.6;letter-spacing:.13em;gap:16px}
.page-top .eyebrow:before{flex-shrink:0;width:36px}
@media(max-width:800px){.page-top .crumb{font-size:13px}.page-top .eyebrow{font-size:13px;letter-spacing:.09em}}
/* Signature de l'accueil plus visible. */
#decouvrir .hero-copy .eyebrow{font-size:clamp(14px,1.25vw,19px);line-height:1.6;letter-spacing:.14em;max-width:none;margin:0 auto 27px;flex-wrap:wrap}
@media(max-width:600px){#decouvrir .hero-copy .eyebrow{font-size:13px;letter-spacing:.08em;max-width:340px}}
/* Croquis historique ELGY derrière la présentation de l'accueil. */
#elgy{position:relative;isolation:isolate;background:#1c1c1c}
#elgy:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('maison-croquis-original.png') center center / min(1500px,120%) auto no-repeat;opacity:.24}
#elgy .service{background:transparent}
@media(max-width:800px){#elgy:before{background-size:auto 70%;background-position:center 45%;opacity:.18}}
/* Le croquis reste immobile pendant le défilement de la présentation. */
#elgy:before{background-attachment:fixed;background-position:center center}
/* Croquis fixe commun à toutes les sections de l'accueil. */
body:has(#bienvenue){isolation:isolate;background:#1c1c1c}
body:has(#bienvenue):before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('maison-croquis-original.png') center center / min(1500px,120%) auto no-repeat;opacity:.24}
body:has(#bienvenue) #elgy:before{display:none}
body:has(#bienvenue) #elgy,
body:has(#bienvenue) main > .section,
body:has(#bienvenue) .cta,
body:has(#bienvenue) .footer{background:transparent}
@media(max-width:800px){body:has(#bienvenue):before{background-size:auto 70%;opacity:.18}}
/* Titres de rubrique de la page Plans plus lisibles. */
.plans-background .content-split .eyebrow,
.plans-background + .projects-section .eyebrow{font-size:16px;line-height:1.6;letter-spacing:.12em}
@media(max-width:800px){.plans-background .content-split .eyebrow,.plans-background + .projects-section .eyebrow{font-size:14px;letter-spacing:.09em}}
/* Invitation de contact alignée sur les sous-titres de page. */
.cta .eyebrow{font-size:15px;line-height:1.6;letter-spacing:.13em;gap:16px}
@media(max-width:800px){.cta .eyebrow{font-size:13px;letter-spacing:.09em}}
/* Taille commune des petits titres de section sur toutes les pages. */
body .eyebrow:not(#welcome-title){font-size:15px;line-height:1.6;letter-spacing:.13em}
@media(max-width:800px){body .eyebrow:not(#welcome-title){font-size:13px;letter-spacing:.09em}}
/* Filigrane ELGY : motif discret qui se fond progressivement dans le fond. */
body:has(#contact-form){isolation:isolate;background:#1c1c1c}
body:has(#contact-form):before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('contact-filigrane.svg') center top / 480px 340px repeat;filter:grayscale(1);opacity:.12;mask-image:linear-gradient(120deg,#000 0%,transparent 48%,#000 100%);-webkit-mask-image:linear-gradient(120deg,#000 0%,transparent 48%,#000 100%)}
body:has(#contact-form) .page-top,body:has(#contact-form) .footer{background:transparent}
@media(max-width:800px){body:has(#contact-form):before{background-size:360px 255px;opacity:.09}}

body:has(#contact-form):before{z-index:0;opacity:.3;background-image:url('contact-filigrane.svg?v=2');mask-image:linear-gradient(120deg,#000 0%,#0005 48%,#000 100%);-webkit-mask-image:linear-gradient(120deg,#000 0%,#0005 48%,#000 100%)}
body:has(#contact-form) main,body:has(#contact-form) .footer{position:relative;z-index:1}

/* Motif plus dense, alternant grands et petits logos. */
body:has(#contact-form):before{background-image:url('contact-filigrane.svg?v=3');background-size:360px 300px}
@media(max-width:800px){body:has(#contact-form):before{background-size:300px 250px}}

/* Voile doux validé : disparition des rectangles derrière les textes. */
.plans-background .content-split>div:not(.visual){background:transparent;position:relative;isolation:isolate}
.plans-background .content-split>div:not(.visual):before{content:'';position:absolute;inset:-80px -55px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgba(28,28,28,.96) 0%,rgba(28,28,28,.90) 38%,rgba(28,28,28,.60) 60%,transparent 76%)}
.plans-background .content-split>div:not(.visual) p{color:#d5d9ce}
@media(max-width:800px){.plans-background .content-split>div:not(.visual):before{inset:-45px -18px}}
/* Bandeau de méthode : découpes obliques animées avec le défilement. */
.method-band{position:relative;isolation:isolate;background:transparent;border:0;padding:145px 0;margin:25px 0;color:#1c1c1c;--band-cut:70%}
.method-band:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--paper);clip-path:polygon(0 0,calc(100% - var(--band-cut)) 65px,100% 65px,100% 100%,var(--band-cut) calc(100% - 65px),0 calc(100% - 65px));pointer-events:none}
.method-band .eyebrow,.method-band h2,.method-band h2 em,.method-band .step b,.method-band .step h3,.method-band .step p{color:#1c1c1c}
.method-band .eyebrow:before{background:#1c1c1c}
.method-band .step{border-color:#1c1c1c55}
@media(max-width:800px){.method-band{padding:105px 0}.method-band:before{clip-path:polygon(0 0,calc(100% - var(--band-cut)) 35px,100% 35px,100% 100%,var(--band-cut) calc(100% - 35px),0 calc(100% - 35px))}}

/* Le plan se prolonge derrière les découpes du bandeau. */
.plans-background .method-band{margin:0;background:transparent}
/* Contenu centré avec davantage de respiration sur les grands écrans. */
main .wrap,.footer .wrap{max-width:1100px;margin-inline:auto}
/* Fond de plan continu, y compris après la découpe basse du bandeau. */
body:has(.plans-background){background-color:#1c1c1c;background-image:url('assets/plan-elgy.png');background-repeat:no-repeat;background-position:right -200px top 108px;background-attachment:fixed}
body:has(.plans-background){background-image:url('plan-elgy.png')}
body:has(.plans-background) .plans-background,body:has(.plans-background) .cta,body:has(.plans-background) .footer{background:transparent}
@media(max-width:800px){body:has(.plans-background){background-image:linear-gradient(90deg,rgba(28,28,28,.87),rgba(28,28,28,.42)),url('plan-elgy.png');background-size:auto,850px auto;background-position:center,right -340px top 100px}}
/* Voiles fondus derrière les textes d'introduction et de bas de page Plans. */
body:has(.plans-background) .page-top > .wrap,
body:has(.plans-background) .cta > .wrap,
body:has(.plans-background) .footer > .wrap{position:relative;isolation:isolate}
body:has(.plans-background) .page-top > .wrap:before,
body:has(.plans-background) .cta > .wrap:before,
body:has(.plans-background) .footer > .wrap:before{content:'';position:absolute;inset:-80px -55px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgba(28,28,28,.96) 0%,rgba(28,28,28,.90) 38%,rgba(28,28,28,.60) 60%,transparent 76%)}
@media(max-width:800px){body:has(.plans-background) .page-top > .wrap:before,body:has(.plans-background) .cta > .wrap:before,body:has(.plans-background) .footer > .wrap:before{inset:-45px -18px}}
/* Voiles localisés uniquement autour des textes, sans couvrir les sections. */
body:has(.plans-background) .page-top > .wrap:before,
body:has(.plans-background) .cta > .wrap:before,
body:has(.plans-background) .footer > .wrap:before,
.plans-background .content-split>div:not(.visual):before{display:none}
body:has(.plans-background) :is(.page-top .wrap,.content-split>div:not(.visual),.cta .wrap>div,.footer-main>div,.footer-bottom)>:is(h1,h2,h3,p,a,ul,span){position:relative;isolation:isolate;width:fit-content;max-width:100%}
body:has(.plans-background) :is(.page-top .wrap,.content-split>div:not(.visual),.cta .wrap>div,.footer-main>div,.footer-bottom)>:is(h1,h2,h3,p,a,ul,span):after,
body:has(.plans-background) .cta .button:after{content:'';position:absolute;inset:-10px -16px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,rgba(28,28,28,.96) 0%,rgba(28,28,28,.9) 38%,rgba(28,28,28,.6) 60%,transparent 76%);filter:blur(7px)}
body:has(.plans-background) .page-top .lead{max-width:660px}
body:has(.plans-background) .cta .button{position:relative;isolation:isolate}

/* Méthode ELGY : un parcours qui accompagne les diagonales du bandeau. */
.method-band{padding:115px 0 135px}
.method-band h2{font-size:clamp(36px,4vw,54px);margin:0;line-height:1.15}
.method-band .eyebrow{margin-bottom:18px}
.method-band .steps{gap:32px;margin-top:38px;align-items:start}
.method-band .step{position:relative;border-top:0;padding-top:0}
.method-band .step:nth-child(2){margin-top:18px}
.method-band .step:nth-child(3){margin-top:36px}
.method-band .step:nth-child(4){margin-top:54px}
.method-band .step b{display:block;font-family:var(--serif);font-size:46px;line-height:1;color:#687526;letter-spacing:-.04em}
.method-band .step:not(:last-child):after{content:'';position:absolute;left:65px;right:-20px;top:28px;height:1px;background:#68752655;transform:rotate(5deg);transform-origin:left center}
.method-band .step h3{font-size:clamp(23px,2.1vw,29px);margin:20px 0 13px}
.method-band .step p{font-size:14px;line-height:1.7;margin:0;max-width:245px}
@media(max-width:1000px){.method-band .steps{grid-template-columns:1fr 1fr;gap:35px}.method-band .step:nth-child(n){margin-top:0}.method-band .step:nth-child(even){margin-top:18px}.method-band .step:nth-child(2):after{display:none}}
@media(max-width:600px){.method-band{padding:95px 0 105px}.method-band .steps{grid-template-columns:1fr;gap:28px;margin-top:30px}.method-band .step:nth-child(n){margin-top:0;padding-left:62px}.method-band .step b{position:absolute;left:0;top:0;font-size:36px}.method-band .step h3{margin:0 0 9px}.method-band .step p{max-width:none}.method-band .step:not(:last-child):after{display:block;left:18px;right:auto;top:48px;bottom:-18px;width:1px;height:auto;transform:none}}
/* Le titre ouvre la diagonale à gauche, la dernière étape la termine à droite. */
@media(min-width:1001px){
.method-band{padding-top:65px;padding-bottom:70px}
.method-band .steps{margin-top:30px}
.method-band .step:nth-child(2){margin-top:28px}
.method-band .step:nth-child(3){margin-top:56px}
.method-band .step:nth-child(4){margin-top:84px}
.method-band .step:not(:last-child):after{transform:rotate(8deg)}
}
/* Un reflet bref sur le logo du menu, une fois par minute. */
.site-header .brand{position:relative;overflow:hidden;isolation:isolate}
.site-header .brand:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.04) 40%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.04) 60%,transparent 70%);transform:translateX(-150%);opacity:0;animation:menu-logo-reflection 60s 60s infinite linear}
@keyframes menu-logo-reflection{0%{transform:translateX(-150%);opacity:0}0.3%{opacity:1}3%{transform:translateX(150%);opacity:1}3.4%,100%{transform:translateX(150%);opacity:0}}
@media(prefers-reduced-motion:reduce){.site-header .brand:after{animation:none;display:none}}
/* Titres descriptifs : conserver une composition lisible. */
.hero h1{font-size:clamp(32px,4.3vw,66px);line-height:1.12;max-width:1050px;margin:20px auto 25px}.hero-lead{max-width:700px}.page-top h1{font-size:clamp(36px,4.8vw,70px)}.content-split h2{font-size:clamp(29px,3vw,42px)}.content-split h3{font-size:23px;line-height:1.35}.intro-text p a,.content-split p a,.lead a{text-decoration:underline;text-underline-offset:3px}

/* Reflet immédiat au survol ou au focus du logo. */
.site-header .brand.logo-reflecting:after{animation:menu-logo-hover 1.8s ease-in-out both}
@keyframes menu-logo-hover{0%{transform:translateX(-150%);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(150%);opacity:0}}
@media(prefers-reduced-motion:reduce){.site-header .brand.logo-reflecting:after{animation:none}}

/* Biens à vendre mis en avant sur l'accueil. */
.sale-slide{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;background:var(--paper);color:#1c1c1c;opacity:1;transition:opacity .2s ease}
.sale-slide.sales-fade{opacity:0}.sale-image img{width:100%;height:auto}.sale-copy{padding:32px}.sale-copy .eyebrow{color:#5e7025}.sale-copy h3{font-size:clamp(26px,2.8vw,36px);line-height:1.2;margin:15px 0}.sale-copy p{font-size:15px}.sale-status{color:#52651c;font-weight:600}.sale-copy strong{display:block;margin:20px 0}.sale-copy .button{color:#1c1c1c}.sales-controls{display:flex;justify-content:flex-end;gap:15px;align-items:center;margin-top:20px}.sales-controls button{background:transparent;border:1px solid #777;color:var(--paper);padding:8px 14px}
@media(max-width:1000px){.sale-slide{grid-template-columns:1fr}.sale-copy{padding:25px}}
@media(prefers-reduced-motion:reduce){.sale-slide{transition:none}}

/* Signature commune des grands bandeaux ELGY, dans la continuité de la page Plans. */
main .elgy-band{position:relative;isolation:isolate;background:transparent;color:#1c1c1c;margin-block:45px;padding-block:88px;--elgy-slope:45px}
.elgy-band:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--paper);clip-path:polygon(0 0,35% var(--elgy-slope),100% var(--elgy-slope),100% 100%,65% calc(100% - var(--elgy-slope)),0 calc(100% - var(--elgy-slope)))}
main .elgy-band .purchase-benefit{margin-block:0;padding:0;background:transparent}
.elgy-band .eyebrow,.elgy-band .text-link{color:#596b22}.elgy-band .eyebrow:before{background:#596b22}
.elgy-band h2,.elgy-band h2 em{color:#1c1c1c}.elgy-band .sale-slide{background:transparent}.elgy-band .sale-copy{padding-right:0}.elgy-band .sale-image{display:block}.elgy-band .sale-image img{display:block}.elgy-band .sales-controls button{color:#1c1c1c;border-color:#1c1c1c66}.elgy-band .sales-controls button:hover{background:#1c1c1c0c}
@media(max-width:1000px){.elgy-band .sale-copy{padding:25px 0 0}}
@media(max-width:800px){main .elgy-band{--elgy-slope:24px;padding-block:62px;margin-block:30px}.elgy-band .purchase-benefit{gap:22px}.elgy-band .section-heading{gap:20px}}

/* Reflet du logo du pied de page, une fois par minute. */
.footer .footer-brand{position:relative;display:inline-block;overflow:hidden;isolation:isolate;vertical-align:top}
.footer .footer-brand .footer-logo{display:block;margin:0}
.footer .footer-brand:after,body:has(.plans-background) .footer .footer-main .footer-brand:after{content:"";filter:none;position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.04) 40%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.04) 60%,transparent 70%);transform:translateX(-150%);opacity:0;animation:menu-logo-reflection 60s 60s infinite linear}
@media(prefers-reduced-motion:reduce){.footer .footer-brand:after{animation:none;display:none}}

.footer .footer-brand.logo-reflecting:after,body:has(.plans-background) .footer .footer-main .footer-brand.logo-reflecting:after{animation:menu-logo-hover 1.8s ease-in-out both}
@media(prefers-reduced-motion:reduce){.footer .footer-brand.logo-reflecting:after,body:has(.plans-background) .footer .footer-main .footer-brand:after{animation:none;display:none}}

/* Accueil : trois réalisations alignées, avec une hiérarchie identique. */
.project-grid.featured{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;align-items:start}
.project-grid.featured .project:nth-child(n){margin-top:0;grid-column:auto;min-width:0}
.project-grid.featured .project:nth-child(n)>button{display:block;width:100%;text-align:left}
.project-grid.featured .project:nth-child(n) .project-image{aspect-ratio:1.42}
.project-grid.featured .project:nth-child(n) .project-image img{width:100%;height:100%;object-fit:cover}
.project-grid.featured .project:nth-child(n) .project-meta{padding:18px 0 0;display:block}
.project-grid.featured .project:nth-child(n) .project-meta:before{display:none}
.project-grid.featured .project:nth-child(n) .project-meta h3{font-size:clamp(24px,2.3vw,30px)}
.project-grid.featured .project:nth-child(n) .project-index{display:none}
@media(max-width:700px){.project-grid.featured{grid-template-columns:1fr;gap:32px}}

/* Les annonces partagent une même cellule : la plus haute réserve la place des commandes. */
[data-sales-carousel].sales-stable{display:grid;grid-template-columns:minmax(0,1fr)}
.sales-stable>.sale-slide{grid-area:1/1;min-width:0;align-self:start}
.sales-stable>.sale-slide.sales-inactive{visibility:hidden;pointer-events:none}
.sales-stable>.sales-controls{grid-area:2/1}
.sales-controls [data-sales-count]{min-width:4ch;text-align:center;font-variant-numeric:tabular-nums}

/* Accueil : réalisations sans séparateurs horizontaux. */
body:has(#bienvenue) .projects-section{border-top:0;border-bottom:0}

/* Bandeau de vente compact : vue d'ensemble et commandes stables. */
main .home-sales.elgy-band{padding-block:65px;--elgy-slope:30px}
.home-sales .section-heading{margin-bottom:22px}
.home-sales .section-heading h2{font-size:clamp(29px,3.2vw,42px);line-height:1.15}
.home-sales .sale-slide{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:26px;align-items:center}
.home-sales .sale-image{width:100%;height:300px;display:flex;align-items:center;justify-content:center}
.home-sales .sale-image img{display:block;width:100%;height:100%;object-fit:contain}
.home-sales.elgy-band .sale-copy{padding:0}
.home-sales .sale-copy h3{font-size:clamp(24px,2.4vw,31px);line-height:1.2;margin:10px 0}
.home-sales .sale-copy p{font-size:14px;margin:10px 0}
.home-sales .sale-copy strong{margin:14px 0}
.home-sales .sale-copy .button{padding:14px 20px}
.home-sales .sales-controls{margin-top:18px}
@media(max-width:650px){main .home-sales.elgy-band{padding-block:48px;--elgy-slope:20px}.home-sales .sale-slide{grid-template-columns:minmax(0,1fr);gap:15px}.home-sales .sale-image{height:190px}.home-sales .section-heading{margin-bottom:16px}.home-sales .sale-copy h3{font-size:24px}.home-sales .sale-copy p{margin:7px 0}.home-sales .sale-copy strong{margin:10px 0}.home-sales .sales-controls{margin-top:14px}}

/* Découpes alignées sur le contenu, avec une pente plus affirmée sur grand écran. */
main .elgy-band, .method-band {
 --band-edge:max(50px, calc((100% - 1100px) / 2));
 --band-depth:clamp(36px, 5vw, 110px);
 padding-top:calc(var(--band-depth) + 28px);
 padding-bottom:calc(var(--band-depth) + 28px);
}
main .elgy-band::before, .method-band::before {
 clip-path:polygon(0 0, var(--band-edge) var(--band-depth), 100% var(--band-depth), 100% 100%, calc(100% - var(--band-edge)) calc(100% - var(--band-depth)), 0 calc(100% - var(--band-depth)));
}
main .home-sales.elgy-band {padding-block:calc(var(--band-depth) + 24px)}
@media(max-width:1050px){main .elgy-band,.method-band{--band-edge:28px;--band-depth:28px}}
@media(max-width:480px){main .elgy-band,.method-band{--band-edge:18px;--band-depth:20px}}
