/*!
 * EDRAS — feuille de style du site
 * Concept : « La précision du plan, l'expérience du terrain ».
 * Grille de 12 colonnes, axes et cotes d'architecte, cartouche de plan.
 * Une famille (Montserrat, OFL, hébergée localement), 3 graisses : 400 / 500 / 600.
 * Couleurs relevées dans le fichier vectoriel du logo (taupe #968C83, noir #1D1D1B).
 */

/* ---------- Polices (hébergées localement) ---------- */
@font-face{font-family:"Montserrat";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/montserrat-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/montserrat-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-weight:600;font-style:normal;font-display:swap;src:url("../fonts/montserrat-latin-600-normal.woff2") format("woff2")}

/* ---------- Jetons ---------- */
:root{
  --ed-paper:#F6F4F1;      /* blanc chaud, fond principal */
  --ed-stone:#E5E0DA;      /* pierre claire */
  --ed-stone-2:#EEEAE5;    /* pierre très claire, fonds de section */
  --ed-line:#D5CEC6;       /* filets */
  --ed-taupe:#968C83;      /* taupe exact du logo : grands éléments et graphisme */
  --ed-taupe-deep:#6E655D; /* taupe lisible pour petits textes (5,2:1) */
  --ed-ink:#1D1D1B;        /* noir du logo */
  --ed-anthracite:#252525; /* séquences fortes, boutons */
  --ed-muted:#5C5955;      /* textes secondaires (6,3:1) */
  --ed-on-dark:#F6F4F1;
  --ed-on-dark-muted:#BDB5AD;
  --ed-dark-line:#3D3C3A;
  --ed-error:#B3261E;      /* erreurs sur fond clair (6,2:1) */
  --ed-error-on-dark:#F4A68F;
  --ed-ok-on-dark:#B9D3AE;

  --ed-font:"Montserrat","Helvetica Neue",Arial,system-ui,sans-serif;
  --ed-fs-body:1.0625rem;  /* 17 px */
  --ed-fs-lead:1.1875rem;  /* 19 px */
  --ed-fs-label:.75rem;    /* 12 px capitales espacées */
  --ed-fs-h1:clamp(2.2rem,1.25rem + 3.9vw,4.05rem);
  --ed-fs-h2:clamp(1.85rem,1.2rem + 2.4vw,3rem);
  --ed-fs-h3:clamp(1.3rem,1.05rem + .9vw,1.75rem);

  --ed-max:1280px;
  --ed-gutter:clamp(20px,4vw,40px);
  --ed-gap:24px;
  --ed-header-h:76px;
  --ed-section:clamp(72px,10vw,136px);
  --ed-ease:cubic-bezier(.2,.7,.2,1);
}
@media (max-width:640px){:root{--ed-header-h:64px;--ed-gap:16px}}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body.ed-site{margin:0;background:var(--ed-paper);color:var(--ed-ink);font-family:var(--ed-font);font-size:var(--ed-fs-body);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.ed-site *,.ed-site *::before,.ed-site *::after{box-sizing:border-box}
.ed-site img{max-width:100%;height:auto}
.ed-site a{color:inherit}
.ed-site :focus-visible{outline:2px solid var(--ed-anthracite);outline-offset:3px}
.ed-dark :focus-visible{outline-color:var(--ed-on-dark)!important}
.ed-site h1,.ed-site h2,.ed-site h3,.ed-site h4{font-family:var(--ed-font);font-weight:600;line-height:1.12;letter-spacing:-.015em;text-wrap:balance;color:inherit}
:where(.ed-site) :where(h1,h2,h3,h4,p){margin:0}
.ed-site [id]{scroll-margin-top:calc(var(--ed-header-h) + 24px)}
.ed-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ed-skip{position:absolute;left:-999px;top:8px;background:var(--ed-anthracite);color:var(--ed-on-dark)!important;padding:10px 14px;z-index:1000;text-decoration:none}
.ed-skip:focus{left:8px}

/* ---------- Mise en page ---------- */
.ed-wrap{max-width:var(--ed-max);margin-inline:auto;padding-inline:var(--ed-gutter);width:100%}
.ed-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--ed-gap)}
.ed-section{padding-block:var(--ed-section)}
.ed-label{font-size:var(--ed-fs-label);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ed-taupe-deep);line-height:1.5}
.ed-dark .ed-label{color:var(--ed-on-dark-muted)}
.ed-h2{font-size:var(--ed-fs-h2)}
.ed-lead{font-size:var(--ed-fs-lead);color:var(--ed-muted);line-height:1.6;max-width:36em}
.ed-muted{color:var(--ed-muted)}

/* ---------- Boutons et liens ---------- */
.ed-btn{display:inline-flex;align-items:center;gap:.6em;min-height:48px;padding:.85em 1.4em;background:var(--ed-anthracite);color:var(--ed-on-dark)!important;font:600 .9375rem/1.2 var(--ed-font);letter-spacing:.01em;text-decoration:none!important;border:1px solid var(--ed-anthracite);border-radius:2px;cursor:pointer;transition:background-color .22s var(--ed-ease),color .22s var(--ed-ease),border-color .22s var(--ed-ease)}
.ed-btn:hover{background:var(--ed-ink);border-color:var(--ed-ink)}
.ed-btn .ed-arr{display:inline-block;transition:transform .22s var(--ed-ease)}
.ed-btn:hover .ed-arr{transform:translateX(3px)}
.ed-btn--light{background:var(--ed-on-dark);color:var(--ed-anthracite)!important;border-color:var(--ed-on-dark)}
.ed-btn--light:hover{background:var(--ed-stone);border-color:var(--ed-stone)}
.ed-btn[disabled],.ed-btn[aria-disabled="true"]{opacity:.65;cursor:progress}
.ed-link{display:inline-flex;align-items:center;gap:.5em;min-height:48px;font-weight:500;font-size:.9375rem;text-decoration:none!important}
.ed-link .ed-u{border-bottom:1px solid var(--ed-taupe);padding-bottom:2px;transition:border-color .22s var(--ed-ease)}
.ed-link:hover .ed-u{border-color:var(--ed-ink)}

/* ---------- En-tête ---------- */
.ed-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:90;background:var(--ed-paper);border-bottom:1px solid transparent;transition:border-color .25s var(--ed-ease)}
.admin-bar .ed-header{top:32px}
@media (max-width:782px){.admin-bar .ed-header{top:0}}
.ed-header.is-scrolled{border-bottom-color:var(--ed-line)}
.ed-header__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--ed-header-h)}
.ed-logo{display:block;line-height:0;flex:none}
.ed-logo svg{height:44px;width:auto;display:block}
.ed-logo .lt{fill:var(--ed-taupe)} .ed-logo .lk{fill:var(--ed-ink)}
.ed-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px)}
.ed-nav__list{display:flex;gap:clamp(18px,2.2vw,32px);list-style:none;margin:0;padding:0}
.ed-nav__list a{font-size:.875rem;font-weight:500;text-decoration:none;padding:10px 0;border-bottom:1px solid transparent;transition:border-color .2s var(--ed-ease)}
.ed-nav__list a:hover,.ed-nav__list a[aria-current="true"]{border-bottom-color:var(--ed-taupe)}
.ed-nav .ed-btn{min-height:44px;padding:.7em 1.15em;font-size:.875rem}
.ed-menu-btn{display:none;align-items:center;gap:10px;min-height:44px;padding:0 4px;background:none;border:0;font:500 .875rem var(--ed-font);color:var(--ed-ink);cursor:pointer}
.ed-menu-btn__bars{position:relative;width:22px;height:12px}
.ed-menu-btn__bars::before,.ed-menu-btn__bars::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:var(--ed-ink);transition:transform .22s var(--ed-ease),top .22s var(--ed-ease)}
.ed-menu-btn__bars::before{top:2px}.ed-menu-btn__bars::after{top:9px}
.ed-menu-btn[aria-expanded="true"] .ed-menu-btn__bars::before{top:5.5px;transform:rotate(45deg)}
.ed-menu-btn[aria-expanded="true"] .ed-menu-btn__bars::after{top:5.5px;transform:rotate(-45deg)}
.ed-mobile-menu{border-top:1px solid var(--ed-line);background:var(--ed-paper);max-height:calc(100vh - var(--ed-header-h));overflow:auto}
.ed-mobile-menu ul{list-style:none;margin:0;padding:8px 0 0}
.ed-mobile-menu li a{display:flex;justify-content:space-between;align-items:center;min-height:56px;font-size:1.125rem;font-weight:500;text-decoration:none;border-bottom:1px solid var(--ed-line)}
.ed-mobile-menu li a::after{content:"→";color:var(--ed-taupe-deep)}
.ed-mobile-menu .ed-btn{width:100%;justify-content:center;margin-block:24px 28px}
@media (max-width:1040px){
  .ed-nav__list,.ed-nav > .ed-btn{display:none}
  .ed-menu-btn{display:inline-flex}
}
@media (max-width:640px){.ed-logo svg{height:36px}}

/* ---------- Accueil ---------- */
.ed-hero{position:relative;padding-top:clamp(40px,7vw,96px);overflow:hidden;border-bottom:1px solid var(--ed-line)}
.ed-hero__bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.ed-hero__bg .ed-wrap,.ed-hero__bg .ed-grid{height:100%}
.ed-hero__bg .ed-grid span{border-left:1px solid var(--ed-stone);opacity:.7}
.ed-hero__bg .ed-grid span:last-child{border-right:1px solid var(--ed-stone)}
.ed-hero__main{position:relative;z-index:1;align-items:end;row-gap:40px}
.ed-hero__text{grid-column:1 / span 7;min-width:0}
.ed-hero__kicker{margin-bottom:28px;display:flex;flex-wrap:wrap;gap:.35em .9em}
.ed-hero__kicker i{font-style:normal;color:var(--ed-taupe)}
.ed-hero__title{font-size:var(--ed-fs-h1);max-width:15ch}
.ed-tone{color:var(--ed-taupe-deep)}
.ed-hero__lead{margin-top:28px}
.ed-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;margin-top:36px}
.ed-trust{display:flex;align-items:center;gap:14px;margin-top:40px;font-size:.9375rem;color:var(--ed-muted);max-width:30em}
.ed-trust img{width:52px;height:52px;object-fit:cover;object-position:50% 30%;border-radius:2px;flex:none}
.ed-trust strong{color:var(--ed-ink);font-weight:600}
.ed-hero__plan{grid-column:8 / span 5;min-width:0;align-self:stretch;display:flex;align-items:flex-end;justify-content:flex-end}
.ed-plan{width:100%;max-width:480px;height:auto;overflow:visible;display:block}
.ed-plan .ax{stroke:var(--ed-line);stroke-width:1;stroke-dasharray:7 4 1.5 4;fill:none}
.ed-plan .bub{fill:var(--ed-paper);stroke:var(--ed-taupe);stroke-width:1}
.ed-plan .bubt{fill:var(--ed-taupe-deep);font:500 2px var(--ed-font);text-anchor:middle;dominant-baseline:central}
.ed-plan .wall{fill:var(--ed-stone);stroke:var(--ed-taupe);stroke-width:1.25;stroke-linejoin:miter}
.ed-plan .cote{stroke:var(--ed-taupe-deep);stroke-width:1;fill:none}
.ed-plan .ext{stroke:var(--ed-taupe);stroke-width:.75;fill:none}
.ed-plan .cotet{fill:var(--ed-taupe-deep);font:500 1.5px var(--ed-font);letter-spacing:.18px;text-anchor:middle}
.ed-cartouche{position:relative;z-index:1;margin:clamp(48px,6vw,80px) 0 0;border-top:1px solid var(--ed-ink);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--ed-paper)}
.ed-cartouche > div{padding:18px 20px 22px;border-right:1px solid var(--ed-line);min-width:0}
.ed-cartouche > div:first-child{padding-left:0}
.ed-cartouche > div:last-child{border-right:0}
.ed-cartouche dt{font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ed-taupe-deep);margin-bottom:6px}
.ed-cartouche dd{margin:0;font-size:.9375rem;font-weight:500;line-height:1.45}
.ed-cartouche a{text-decoration:none;border-bottom:1px solid var(--ed-taupe)}
.ed-cartouche a:hover{border-color:var(--ed-ink)}
@media (max-width:1040px){
  .ed-hero__text,.ed-hero__plan{grid-column:1 / -1}
  .ed-hero__plan{justify-content:flex-start}
  .ed-plan{max-width:420px}
  .ed-cartouche{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-cartouche > div:nth-child(2){border-right:0}
  .ed-cartouche > div:nth-child(3){padding-left:0}
  .ed-cartouche > div:nth-child(n+3){border-top:1px solid var(--ed-line)}
}
@media (max-width:640px){
  .ed-hero__bg{display:none}
  .ed-hero__lead{font-size:1.0625rem}
  .ed-hero__actions .ed-btn{width:100%;justify-content:center}
  .ed-plan{max-width:100%}
  .ed-plan .cotet{font-size:2px;letter-spacing:.05px}
  .ed-plan .bubt{font-size:2.4px}
  .ed-cartouche{grid-template-columns:1fr}
  .ed-cartouche > div{padding-left:0!important;border-right:0;border-top:1px solid var(--ed-line)}
  .ed-cartouche > div:first-child{border-top:0}
}

/* ---------- Besoins ---------- */
.ed-needs__head{row-gap:32px;align-items:start}
.ed-needs__intro{grid-column:1 / span 6;min-width:0;display:grid;gap:24px;align-content:start}
.ed-needs__intro .ed-lead{color:var(--ed-ink)}
.ed-needs__visual{grid-column:8 / span 5;min-width:0}
.ed-facade{display:block;width:100%;aspect-ratio:5 / 4;max-width:100%;background:var(--ed-stone-2)}
.ed-facade canvas{display:block;width:100%;height:100%}
.ed-figcap{margin-top:10px;font-size:.75rem;color:var(--ed-muted)}
.ed-audiences{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ed-ink)}
.ed-audience{padding:28px 32px 8px 0;min-width:0}
.ed-audience + .ed-audience{padding-left:32px;border-left:1px solid var(--ed-line)}
.ed-audience h3{font-size:var(--ed-fs-h3);margin:10px 0 14px}
.ed-audience p{color:var(--ed-muted);max-width:32em}
@media (max-width:1040px){.ed-needs__intro,.ed-needs__visual{grid-column:1 / -1}.ed-needs__visual{max-width:560px}}
@media (max-width:640px){
  .ed-audiences{grid-template-columns:1fr}
  .ed-audience{padding:24px 0 8px}
  .ed-audience + .ed-audience{padding-left:0;border-left:0;border-top:1px solid var(--ed-line);margin-top:20px}
}

/* ---------- Prestations ---------- */
.ed-services__head{row-gap:24px;margin-bottom:clamp(40px,5vw,72px);align-items:end}
.ed-services__head .ed-label{grid-column:1 / -1;margin-bottom:-4px}
.ed-services__head .ed-h2{grid-column:1 / span 7}
.ed-services__head .ed-services__intro{grid-column:9 / span 4;color:var(--ed-muted);font-size:1rem}
.ed-svc{list-style:none;margin:0;padding:0;border-bottom:1px solid var(--ed-line)}
.ed-svc__item{border-top:1px solid var(--ed-line);transition:background-color .25s var(--ed-ease)}
.ed-svc__item:hover{background:rgba(229,224,218,.45)}
.ed-svc__row{padding-block:clamp(28px,3.2vw,44px);align-items:start;row-gap:10px}
.ed-svc__letter{grid-column:1 / span 2;font-size:clamp(3.25rem,2rem + 4.6vw,6.25rem);font-weight:600;line-height:.8;color:var(--ed-taupe);letter-spacing:-.02em;transition:color .25s var(--ed-ease)}
.ed-svc__item:hover .ed-svc__letter{color:var(--ed-ink)}
.ed-svc__title{grid-column:3 / span 4;min-width:0}
.ed-svc__title h3,.ed-svc__title .ed-h3{font-size:var(--ed-fs-h3);line-height:1.2}
.ed-svc__title b{font-weight:600;color:var(--ed-taupe-deep)}
.ed-svc__body{grid-column:7 / span 6;min-width:0;max-width:36em}
.ed-note{display:flex;gap:12px;margin-top:16px!important;padding-top:14px;border-top:1px dashed var(--ed-line);font-size:.875rem;line-height:1.55;color:var(--ed-muted)}
.ed-note abbr{flex:none;text-decoration:none;font-weight:600;letter-spacing:.08em;color:var(--ed-taupe-deep)}
.ed-services__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:40px}
.ed-services__foot p{color:var(--ed-muted);max-width:40em;font-size:1rem}
@media (max-width:1040px){
  .ed-services__head .ed-h2{grid-column:1 / -1}
  .ed-services__head .ed-services__intro{grid-column:1 / span 8}
  .ed-svc__title,.ed-svc__body{grid-column:3 / -1}
}
@media (max-width:640px){
  .ed-services__head .ed-services__intro{grid-column:1 / -1}
  .ed-svc__row{grid-template-columns:56px minmax(0,1fr);column-gap:16px}
  .ed-svc__letter{grid-column:1;font-size:3rem}
  .ed-svc__title,.ed-svc__body{grid-column:2}
  .ed-services__foot .ed-btn{width:100%;justify-content:center}
}

/* ---------- Respiration vidéo ---------- */
.ed-breath{position:relative;margin:0;background:var(--ed-stone);overflow:hidden;height:clamp(300px,52vw,620px)}
.ed-breath video,.ed-breath img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ed-breath::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(29,29,27,.55),rgba(29,29,27,0) 55%);pointer-events:none}
.ed-breath__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(24px,4vw,48px)}
.ed-breath__cap .ed-wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.ed-breath__quote{color:var(--ed-on-dark);font-size:clamp(1.25rem,.9rem + 1.6vw,2.25rem);font-weight:500;line-height:1.2;max-width:22ch;text-wrap:balance}
.ed-breath__toggle{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;background:rgba(29,29,27,.55);color:var(--ed-on-dark);border:1px solid rgba(246,244,241,.5);border-radius:2px;font:500 .8125rem var(--ed-font);cursor:pointer;transition:background-color .2s var(--ed-ease)}
.ed-breath__toggle:hover{background:rgba(29,29,27,.8)}
.ed-breath__toggle svg{width:12px;height:12px;fill:currentColor}

/* ---------- Accompagnement ---------- */
.ed-approach{background:var(--ed-stone-2);border-bottom:1px solid var(--ed-line)}
.ed-approach__head{row-gap:24px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.ed-approach__head .ed-label{grid-column:1 / -1;margin-bottom:-4px}
.ed-approach__head .ed-h2{grid-column:1 / span 8}
.ed-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--ed-gap);position:relative;counter-reset:step}
.ed-steps::before{content:"";position:absolute;left:0;right:0;top:11px;border-top:1px solid var(--ed-taupe-deep)}
.ed-step{position:relative;padding-top:44px;padding-right:12px;min-width:0}
.ed-step::before{content:"";position:absolute;left:-1px;top:5px;height:13px;border-left:1px solid var(--ed-taupe-deep);transform:skewX(-45deg);transform-origin:bottom}
.ed-step__num{display:block;font-size:.8125rem;font-weight:600;letter-spacing:.12em;color:var(--ed-taupe-deep);margin-bottom:14px}
.ed-step h3{font-size:var(--ed-fs-h3);margin-bottom:12px}
.ed-step p{color:var(--ed-muted);max-width:26em}
.ed-approach__foot{margin-top:clamp(40px,5vw,56px)}
@media (max-width:1040px){.ed-approach__head .ed-h2{grid-column:1 / -1}}
@media (max-width:760px){
  .ed-steps{grid-template-columns:1fr;row-gap:8px;padding-left:28px}
  .ed-steps::before{left:6px;right:auto;top:6px;bottom:6px;border-top:0;border-left:1px solid var(--ed-taupe-deep)}
  .ed-step{padding-top:0;padding-bottom:28px}
  .ed-step::before{left:-28px;top:4px;width:13px;height:0;border-left:0;border-top:1px solid var(--ed-taupe-deep);transform:skewY(-45deg)}
  .ed-approach__foot .ed-btn{width:100%;justify-content:center}
}

/* ---------- Bastien Simonet ---------- */
.ed-person{row-gap:48px;align-items:start}
.ed-person__media{grid-column:1 / span 4;min-width:0}
.ed-portrait{position:relative;margin:0;max-width:260px;padding:0 0 26px 0}
.ed-portrait img{display:block;width:100%;aspect-ratio:111 / 132;object-fit:cover;border-radius:2px}
.ed-portrait::before{content:"";position:absolute;left:0;right:0;bottom:8px;border-top:1px solid var(--ed-taupe)}
.ed-portrait::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:10px;border-left:1px solid var(--ed-taupe);border-right:1px solid var(--ed-taupe)}
.ed-portrait figcaption{margin-top:16px;font-size:.875rem;color:var(--ed-muted);line-height:1.5}
.ed-portrait figcaption strong{display:block;color:var(--ed-ink);font-weight:600;font-size:1rem}
.ed-person__text{grid-column:6 / span 7;min-width:0;display:grid;gap:22px;align-content:start}
.ed-person__text .ed-h2{margin-bottom:6px}
.ed-person__text p{max-width:38em}
.ed-langs{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:.9375rem;color:var(--ed-muted)}
.ed-langs span{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid var(--ed-line);border-radius:2px;color:var(--ed-ink);font-weight:500;font-size:.875rem}
.ed-career{margin-top:18px}
.ed-career h3{font-size:var(--ed-fs-label);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ed-taupe-deep);margin-bottom:12px}
.ed-career ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--ed-ink)}
.ed-career li{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--ed-line);font-size:1rem}
.ed-career li > span:first-child,.ed-career li > strong:first-child{font-weight:600;color:var(--ed-taupe-deep);font-variant-numeric:tabular-nums}
@media (max-width:1040px){.ed-person__media{grid-column:1 / span 5}.ed-person__text{grid-column:1 / -1}}
@media (max-width:640px){.ed-person__media{grid-column:1 / -1}.ed-portrait{max-width:200px}.ed-career li{grid-template-columns:1fr;gap:2px}}

/* ---------- Références et actualités (modules activables) ---------- */
.ed-refs__grid,.ed-news__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px var(--ed-gap);margin-top:40px}
.ed-ref figure{margin:0}
.ed-ref img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}
.ed-ref h3{font-size:1.125rem;margin:14px 0 6px}
.ed-ref dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.875rem;color:var(--ed-muted)}
.ed-ref dt{font-weight:500;color:var(--ed-taupe-deep)}
.ed-ref dd{margin:0}
.ed-ref__credit{font-size:.75rem;color:var(--ed-muted);margin-top:8px!important}
.ed-news__item{border-top:1px solid var(--ed-ink);padding-top:16px}
.ed-news__item time{font-size:.8125rem;color:var(--ed-taupe-deep);font-weight:500}
.ed-news__item h3{font-size:1.125rem;margin:8px 0}
.ed-news__item a{text-decoration:none}
.ed-news__item a:hover h3{text-decoration:underline;text-decoration-color:var(--ed-taupe);text-underline-offset:4px}
@media (max-width:900px){.ed-refs__grid,.ed-news__list{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.ed-refs__grid,.ed-news__list{grid-template-columns:1fr}}

/* ---------- Contact ---------- */
.ed-dark{background:var(--ed-anthracite);color:var(--ed-on-dark)}
.ed-contact .ed-grid{row-gap:48px}
.ed-contact__intro{grid-column:1 / span 5;min-width:0;display:grid;gap:22px;align-content:start}
.ed-contact__intro .ed-lead{color:var(--ed-on-dark-muted)}
.ed-coords{border-top:1px solid var(--ed-taupe);padding-top:22px;display:grid;gap:16px;margin-top:12px}
.ed-coords address{font-style:normal;line-height:1.6}
.ed-coords address strong{font-weight:600}
.ed-coords a{display:flex;align-items:center;min-height:44px;font-size:1.0625rem;font-weight:500;text-decoration:none;border-bottom:1px solid var(--ed-dark-line);transition:border-color .22s var(--ed-ease)}
.ed-coords a:hover{border-color:var(--ed-taupe)}
.ed-coords a small{margin-left:auto;padding-left:12px;font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ed-on-dark-muted)}
.ed-contact__form{grid-column:7 / span 6;min-width:0}
@media (max-width:1040px){.ed-contact__intro,.ed-contact__form{grid-column:1 / -1}}

.ed-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px var(--ed-gap)}
.ed-field{display:grid;gap:8px;min-width:0}
.ed-field--full{grid-column:1 / -1}
.ed-field label{font-size:.875rem;font-weight:500;color:var(--ed-on-dark)}
.ed-field label .ed-req,.ed-field label .ed-opt{font-weight:400;color:var(--ed-on-dark-muted);font-size:.8125rem}
.ed-field input,.ed-field textarea{width:100%;min-height:50px;padding:12px 14px;background:#2E2E2D;color:var(--ed-on-dark);border:1px solid #5A5650;border-radius:2px;font:400 1rem/1.5 var(--ed-font);transition:border-color .2s var(--ed-ease),background-color .2s var(--ed-ease)}
.ed-field textarea{min-height:160px;resize:vertical}
.ed-field input:hover,.ed-field textarea:hover{border-color:var(--ed-taupe)}
.ed-field input:focus,.ed-field textarea:focus{outline:2px solid var(--ed-on-dark);outline-offset:1px;border-color:var(--ed-on-dark);background:#323231}
.ed-field [aria-invalid="true"]{border-color:var(--ed-error-on-dark)}
.ed-field__err{font-size:.8125rem;color:var(--ed-error-on-dark);min-height:0}
.ed-field__err:empty{display:none}
.ed-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.ed-form__foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-top:4px}
.ed-form__privacy{font-size:.8125rem;color:var(--ed-on-dark-muted);max-width:30em}
.ed-form__privacy a{color:var(--ed-on-dark)}
.ed-form__status{grid-column:1 / -1;padding:14px 16px;border:1px solid;border-radius:2px;font-size:.9375rem}
.ed-form__status:empty{display:none}
.ed-form__status[data-state="success"]{border-color:var(--ed-ok-on-dark);color:var(--ed-on-dark)}
.ed-form__status[data-state="error"]{border-color:var(--ed-error-on-dark);color:var(--ed-on-dark)}
.ed-form__status[data-state="info"]{border-color:#5A5650;border-style:dashed;color:var(--ed-on-dark-muted)}
.ed-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:none;animation:ed-spin .7s linear infinite}
.ed-btn.is-loading .ed-spinner{display:inline-block}
.ed-btn.is-loading .ed-arr{display:none}
@keyframes ed-spin{to{transform:rotate(360deg)}}
@media (max-width:640px){.ed-form{grid-template-columns:1fr}.ed-form__foot .ed-btn{width:100%;justify-content:center}}

/* ---------- Pied de page ---------- */
.ed-footer{background:var(--ed-anthracite);color:var(--ed-on-dark-muted);border-top:1px solid var(--ed-dark-line);font-size:.875rem}
.ed-footer__main{padding-block:48px;row-gap:32px}
.ed-footer__brand{grid-column:1 / span 4;min-width:0}
.ed-footer__brand .ed-logo svg{height:40px}
.ed-footer .ed-logo .lk{fill:var(--ed-on-dark)}
.ed-footer__brand p{margin-top:16px;max-width:24em}
.ed-footer__col{grid-column:span 2;min-width:0}
.ed-footer__col--wide{grid-column:span 3}
.ed-footer h2{font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ed-on-dark-muted);margin-bottom:12px}
.ed-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ed-footer a{color:var(--ed-on-dark);text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
.ed-footer a:hover{text-decoration:underline;text-decoration-color:var(--ed-taupe);text-underline-offset:4px}
.ed-footer address{font-style:normal;color:var(--ed-on-dark);line-height:1.7}
.ed-footer__bottom{border-top:1px solid var(--ed-dark-line);padding-block:18px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:.8125rem}
@media (max-width:900px){.ed-footer__brand{grid-column:1 / -1}.ed-footer__col,.ed-footer__col--wide{grid-column:span 6}}
@media (max-width:520px){.ed-footer__col,.ed-footer__col--wide{grid-column:1 / -1}}

/* ---------- Pages utilitaires ---------- */
.ed-legal{padding-block:clamp(48px,8vw,104px)}
.ed-legal .ed-wrap{max-width:860px}
.ed-legal h1{font-size:var(--ed-fs-h2);margin:12px 0 32px}
.ed-legal h2{font-size:1.25rem;margin:40px 0 12px;padding-top:20px;border-top:1px solid var(--ed-line)}
.ed-legal p,.ed-legal li{max-width:42em;color:var(--ed-ink)}
.ed-legal p + p{margin-top:12px}
.ed-legal ul{padding-left:1.2em}
.ed-todo{background:#F1E6C8;color:#4A3F1C;padding:0 .3em;border-radius:2px;font-weight:500}

/* ---------- Animations (décoratives, jamais nécessaires) ---------- */
@media (prefers-reduced-motion:no-preference){
  .ed-plan .ax,.ed-plan .bub,.ed-plan .bubt{animation:ed-fade .5s var(--ed-ease) .1s backwards}
  .ed-plan .wall{stroke-dasharray:1;animation:ed-draw 1.5s var(--ed-ease) .35s backwards,ed-fill .6s var(--ed-ease) 1.45s backwards}
  .ed-plan .cote,.ed-plan .ext,.ed-plan .cotet{animation:ed-fade .5s var(--ed-ease) 1.7s backwards}
  .ed-hero__text > *{animation:ed-rise .7s var(--ed-ease) backwards}
  .ed-hero__text > :nth-child(2){animation-delay:.06s}
  .ed-hero__text > :nth-child(3){animation-delay:.12s}
  .ed-hero__text > :nth-child(4){animation-delay:.18s}
  .ed-hero__text > :nth-child(5){animation-delay:.24s}
  .ed-js .ed-reveal{transition:opacity .6s var(--ed-ease),transform .6s var(--ed-ease)}
  .ed-js .ed-reveal.is-pending{opacity:.25;transform:translateY(14px)}
}
@keyframes ed-fade{from{opacity:0}}
@keyframes ed-draw{from{stroke-dashoffset:1}}
@keyframes ed-fill{from{fill-opacity:0}}
@keyframes ed-rise{from{opacity:0;transform:translateY(10px)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ed-site *{transition-duration:.01ms!important}}

/* ---------- Utilitaires ---------- */
.ed-pt0{padding-top:0!important}
.ed-lead--ink{color:var(--ed-ink)}
.ed-portrait .ed-portrait__cap{margin-top:16px;font-size:.875rem;color:var(--ed-muted);line-height:1.5}
.ed-portrait .ed-portrait__cap strong{display:block;color:var(--ed-ink);font-weight:600;font-size:1rem}
.ed-langs p{display:flex;flex-wrap:wrap;gap:10px 14px}
