:root{
    --ink:#231F20;--ink-2:#2E2A2B;--cream:#F2F2F2;--paper:#FCFCFB;
    --stone:#8C8987;--stone-d:#565353;--line:#E3E1DE;
    --bronze:#D34100;--gold:#F3A627;--maxw:1280px;--ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--paper);color:var(--ink);font-family:'Jost',sans-serif;font-weight:300;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  img{display:block;width:100%;height:100%;object-fit:cover}
  a{color:inherit;text-decoration:none}
  ::selection{background:var(--bronze);color:#fff}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(22px,5vw,72px)}
  .eyebrow{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:400;color:var(--bronze)}
  .serif{font-family:'Cormorant Garamond',serif}

  /* ---------- HEADER ---------- */
  .site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:26px 0;transition:background .6s var(--ease),padding .6s var(--ease),box-shadow .6s var(--ease)}
  .site-header.scrolled{background:rgba(252,252,251,.92);backdrop-filter:blur(10px);padding:16px 0;box-shadow:0 1px 0 var(--line)}
  .header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
  .brand{display:flex;flex-direction:column;line-height:1;color:#fff;transition:color .6s var(--ease)}
  .scrolled .brand{color:var(--ink)}
  .brand .name{font-family:'Cormorant Garamond',serif;font-size:1.7rem;letter-spacing:.18em;font-weight:500}
  .brand .sub{font-size:.6rem;letter-spacing:.42em;text-transform:uppercase;margin-top:5px;opacity:.85}
  nav.primary{display:flex;align-items:center;gap:clamp(18px,2vw,38px)}
  nav.primary a{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;color:rgba(255,255,255,.92);position:relative;padding-bottom:3px;transition:color .6s var(--ease)}
  .scrolled nav.primary a{color:var(--stone-d)}
  nav.primary a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--bronze);transition:width .45s var(--ease)}
  nav.primary a:hover{color:var(--bronze)}
  nav.primary a:hover::after{width:100%}
  .nav-cta{background:var(--gold);border:1px solid var(--gold);color:var(--ink);padding:11px 22px;letter-spacing:.18em;transition:all .5s var(--ease)}
  .nav-cta:hover{background:var(--bronze);border-color:var(--bronze);color:#fff!important}
  .nav-cta:hover::after{width:0!important}
  .menu-toggle{display:none;background:none;border:none;cursor:pointer;width:30px;height:20px;position:relative}
  .menu-toggle span{position:absolute;left:0;right:0;height:1.5px;background:#fff;transition:.4s var(--ease)}
  .scrolled .menu-toggle span{background:var(--ink)}
  .menu-toggle span:nth-child(1){top:0}.menu-toggle span:nth-child(2){top:9px}.menu-toggle span:nth-child(3){top:18px}

  /* ---------- SCROLL STORY ---------- */
  .story{position:relative}
  .stage{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;background:var(--ink)}
  .scene{position:absolute;inset:0;opacity:0;will-change:opacity}
  .scene-img-wrap{position:absolute;inset:0;overflow:hidden}
  .scene-img-wrap::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#231F20,#2E2A2B 55%,#3a3436)}
  .scene-img{position:absolute;inset:0;transform:scale(1.12);will-change:transform}
  .scene::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,8,6,.4) 0%,rgba(10,8,6,.08) 30%,rgba(10,8,6,.2) 55%,rgba(10,8,6,.82) 100%),linear-gradient(90deg,rgba(10,8,6,.55) 0%,rgba(10,8,6,.05) 40%,rgba(10,8,6,.05) 60%,rgba(10,8,6,.5) 100%)}
  .scene-cap{position:absolute;z-index:3;color:#fff;will-change:transform,opacity;max-width:min(900px,86vw);text-shadow:0 2px 20px rgba(0,0,0,.6),0 1px 4px rgba(0,0,0,.55)}
  .pos-bl{left:clamp(22px,5vw,72px);bottom:clamp(96px,16vh,160px);text-align:left}
  .pos-c{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}
  .pos-bc{left:50%;bottom:clamp(110px,17vh,170px);transform:translateX(-50%);text-align:center}
  .pos-tl{left:clamp(22px,5vw,72px);top:clamp(120px,22vh,220px);text-align:left}
  .scene-cap .eyebrow{color:var(--gold);display:block;margin-bottom:.9em;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.65)}
  .scene-cap h2,.scene-cap h1{font-family:'Cormorant Garamond',serif;font-weight:400;line-height:1;letter-spacing:-.01em;font-size:clamp(2.6rem,8vw,7rem)}
  .scene-cap h1 em,.scene-cap h2 em{font-style:italic;color:var(--gold)}
  .scene-cap p.lead{font-size:clamp(1.02rem,1.6vw,1.24rem);letter-spacing:.03em;color:#fff;margin-top:1.4em;max-width:46ch;font-weight:500}
  .pos-bc p.lead,.pos-c p.lead{margin-left:auto;margin-right:auto}
  .scene-cap .cta{display:inline-flex;align-items:center;gap:12px;margin-top:2em;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;background:var(--gold);border:1px solid var(--gold);color:var(--ink);padding:16px 34px;font-weight:500;box-shadow:0 10px 30px -10px rgba(0,0,0,.45);transition:all .4s var(--ease)}
  .scene-cap .cta:hover{background:var(--bronze);border-color:var(--bronze);color:#fff}

  .rail{position:fixed;right:clamp(16px,2.6vw,40px);top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;gap:14px;opacity:0;transition:opacity .6s var(--ease)}
  .rail.show{opacity:1}
  .rail .tick{width:1px;height:30px;background:rgba(255,255,255,.28);position:relative;overflow:hidden}
  .rail .tick i{position:absolute;inset:0;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease)}
  .rail .tick.on i{transform:scaleY(1)}
  .cue{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:60;font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.7);display:flex;flex-direction:column;align-items:center;gap:12px;transition:opacity .5s var(--ease)}
  .cue .bar{width:1px;height:46px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:cue 2.4s var(--ease) infinite}
  @keyframes cue{0%{transform:scaleY(0);transform-origin:top}40%{transform:scaleY(1);transform-origin:top}60%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

  .story.no-motion{height:auto!important}
  .story.no-motion .stage{position:static;height:auto}
  .story.no-motion .scene{position:relative;inset:auto;opacity:1;height:100svh;min-height:560px}
  .story.no-motion .scene-img{transform:none}
  .story.no-motion .scene-cap{opacity:1!important;transform:none!important}
  .story.no-motion .pos-c{position:absolute}

  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
  .reveal.in{opacity:1;transform:none}
  .reveal.d1{transition-delay:.12s}.reveal.d2{transition-delay:.24s}.reveal.d3{transition-delay:.36s}

  /* ---------- INTRO / RÉSIDENCE ---------- */
  .intro{background:var(--cream);padding:clamp(90px,15vh,170px) 0}
  .intro-grid{display:grid;grid-template-columns:1fr 2.1fr;gap:clamp(36px,7vw,110px);align-items:start}
  .intro-side{display:flex;flex-direction:column;gap:28px}
  .intro .label{display:flex;align-items:center;gap:16px}
  .intro-exp{display:flex;align-items:baseline;gap:12px;color:var(--bronze)}
  .intro-exp b{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:3.4rem;line-height:1;font-style:italic}
  .intro-exp span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-d);line-height:1.4}
  .intro-photo{aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:var(--line)}
  .intro-photo img{width:100%;height:100%;object-fit:cover;display:block}
  .intro .label .rule{width:46px;height:1px;background:var(--bronze)}
  .intro-statement{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(1.7rem,3.4vw,3.1rem);line-height:1.18;color:var(--ink)}
  .intro-statement em{font-style:italic;color:var(--bronze)}
  .intro-statement .small{display:block;font-family:'Jost',sans-serif;font-weight:300;font-size:clamp(.98rem,1.3vw,1.08rem);line-height:1.75;color:var(--stone-d);margin-top:34px;max-width:54ch}

  /* ---------- AVANTAGES (équipements) ---------- */
  .avantages{padding:clamp(80px,12vh,140px) 0;background:var(--ink)}
  .avantages .section-head h2{color:#fff}
  .avantages .section-head p{color:rgba(255,255,255,.66)}
  .av-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);margin-top:clamp(44px,7vh,76px)}
  .av{background:var(--ink);padding:clamp(30px,3vw,46px) clamp(22px,2vw,32px);display:flex;flex-direction:column;gap:16px;transition:background .45s var(--ease)}
  .av:hover{background:var(--ink-2)}
  .av svg{width:34px;height:34px;stroke:var(--gold);stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .av h4{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:1.4rem;line-height:1.12;color:#fff}
  .av p{font-size:.88rem;color:rgba(255,255,255,.6);line-height:1.62}

  /* ---------- LOGEMENTS (typologies) ---------- */
  .collection{padding:clamp(80px,12vh,140px) 0 clamp(40px,6vh,80px)}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:clamp(48px,7vh,86px)}
  .section-head h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1;margin-top:14px}
  .section-head p{color:var(--stone-d);max-width:34ch;font-size:.98rem}
  .estate{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center;padding:clamp(38px,6vh,72px) 0;border-top:1px solid var(--line)}
  .estate:last-of-type{border-bottom:1px solid var(--line)}
  .estate.flip .estate-media{order:2}
  .estate-media{position:relative;aspect-ratio:4/3.1;overflow:hidden;background:linear-gradient(135deg,#e6e6e6,#cccccc)}
  .estate-media img{transition:transform 1.4s var(--ease)}
  .estate:hover .estate-media img{transform:scale(1.06)}
  .estate-media .idx{position:absolute;top:18px;left:20px;z-index:2;color:#fff;font-family:'Cormorant Garamond',serif;font-size:1.1rem;letter-spacing:.2em;mix-blend-mode:difference}
  .estate-body .place{font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze)}
  .estate-body h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.05;margin:14px 0 22px}
  .specs{display:flex;gap:26px;flex-wrap:wrap;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .spec{display:flex;flex-direction:column;gap:3px}
  .spec .v{font-family:'Cormorant Garamond',serif;font-size:1.5rem;line-height:1}
  .spec .k{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
  .estate-body .desc{color:var(--stone-d);margin:24px 0 28px;max-width:46ch;font-size:.98rem}
  .price-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
  .price{font-family:'Cormorant Garamond',serif;font-size:1.45rem;letter-spacing:.02em}
  .lnk{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);position:relative;padding-bottom:5px}
  .lnk::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--line)}
  .lnk span.bar{position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--bronze);transition:width .5s var(--ease);z-index:1}
  .lnk:hover span.bar{width:100%}
  .lnk .arr{transition:transform .5s var(--ease)}
  .lnk:hover .arr{transform:translateX(6px)}
  .collection-foot{text-align:center;padding:clamp(50px,8vh,90px) 0 0}

  /* ---------- buttons ---------- */
  .btn{display:inline-flex;align-items:center;gap:12px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:400;padding:16px 34px;border:1px solid var(--ink);color:var(--ink);background:none;cursor:pointer;transition:all .5s var(--ease)}
  .btn:hover{background:var(--ink);color:var(--paper)}
  .btn.solid{background:var(--bronze);border-color:var(--bronze);color:#fff}
  .btn.solid:hover{background:transparent;color:var(--bronze)}

  /* ---------- À PROPOS (bande sombre) ---------- */
  .agency{position:relative;padding:clamp(100px,16vh,180px) 0;background:var(--ink);color:#fff;overflow:hidden}
  .agency-bg{position:absolute;inset:0;opacity:.22;background:linear-gradient(135deg,#2E2A2B,#1a1718)}
  .agency-bg img{filter:grayscale(.3) brightness(.7)}
  .agency::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,18,12,.94),rgba(22,18,12,.6))}
  .agency-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
  .agency .eyebrow{color:var(--gold)}
  .agency h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.2rem,4.6vw,3.8rem);line-height:1.1;margin:20px 0 28px}
  .agency p{color:rgba(255,255,255,.78);max-width:52ch;font-size:1rem;margin-bottom:20px}
  .stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
  .stat{background:var(--ink);padding:clamp(26px,3.2vw,40px)}
  .stat .v{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.05;color:var(--gold)}
  .stat .k{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.66);margin-top:10px}

  /* ---------- GALERIE ---------- */
  .galerie{padding:clamp(80px,12vh,140px) 0;background:var(--cream)}
  .gal-tabs{display:flex;gap:10px;margin-top:clamp(36px,5vh,54px)}
  .gal-tab{padding:11px 22px;border:1px solid var(--line);background:transparent;color:var(--stone-d);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .35s var(--ease)}
  .gal-tab.active{background:var(--ink);border-color:var(--ink);color:#fff}
  .gal-tab:not(.active):hover{border-color:var(--bronze);color:var(--bronze)}
  .gal-carousel{position:relative;display:flex;align-items:center;gap:14px;margin-top:22px}
  .gal-track{flex:1;display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding-bottom:6px}
  .gal-track::-webkit-scrollbar{height:6px}
  .gal-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
  .gal-slide{flex:0 0 auto;width:min(70vw,560px);scroll-snap-align:start}
  .gal-item{position:relative;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(135deg,#e6e6e6,#cccccc);border-radius:4px}
  .gal-item img{width:100%;height:100%;object-fit:cover;display:block}
  .gal-item .badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--stone-d);font-size:.85rem}
  .gal-arrow{flex:0 0 auto;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease)}
  .gal-arrow:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
  @media(max-width:640px){.gal-arrow{width:38px;height:38px;font-size:1.2rem}.gal-slide{width:82vw}}

  /* ---------- LOCALISATION ---------- */
  .localisation{padding:clamp(80px,12vh,140px) 0;background:var(--paper)}
  .loc-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,80px);align-items:center}
  .loc-text h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.05;margin:14px 0 20px}
  .loc-text p{color:var(--stone-d);max-width:42ch;margin-bottom:18px}
  .loc-text .addr{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ink)}
  .loc-map{aspect-ratio:16/12;border:1px solid var(--line);overflow:hidden;background:var(--cream)}
  .loc-map iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05)}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--ink-2);color:#fff;padding:clamp(90px,14vh,160px) 0}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,7vw,110px)}
  .contact .eyebrow{color:var(--gold)}
  .contact h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.04;margin:18px 0 26px}
  .contact .lede{color:rgba(255,255,255,.74);max-width:42ch;margin-bottom:42px}
  .contact-info{display:flex;flex-direction:column;gap:24px;margin-top:8px}
  .ci .k{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
  .ci .v{font-family:'Cormorant Garamond',serif;font-size:1.32rem;color:#fff;line-height:1.4}
  .ci .v a:hover{color:var(--gold)}
  form{display:flex;flex-direction:column;gap:30px}
  .field{position:relative}
  .field input,.field textarea{width:100%;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.28);color:#fff;font-family:'Jost',sans-serif;font-weight:300;font-size:1rem;padding:10px 0;outline:none;transition:border-color .4s var(--ease);resize:none}
  .field textarea{min-height:64px}
  .field label{position:absolute;left:0;top:10px;color:rgba(255,255,255,.5);font-size:1rem;pointer-events:none;transition:all .35s var(--ease)}
  .field input:focus~label,.field input:valid~label,.field textarea:focus~label,.field textarea:valid~label{top:-15px;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
  .field input:focus,.field textarea:focus{border-color:var(--gold)}
  form .btn{align-self:flex-start;margin-top:6px}
  .form-done{display:none;padding:30px 0;font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--gold);border-top:1px solid rgba(255,255,255,.2)}
  .form-done.show{display:block}

  /* ---------- FOOTER ---------- */
  footer{background:var(--ink);color:rgba(255,255,255,.7);padding:clamp(70px,9vh,100px) 0 38px}
  .foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.12)}
  .foot-brand .name{font-family:'Cormorant Garamond',serif;font-size:2rem;letter-spacing:.16em;color:#fff;font-weight:500}
  .foot-brand .sub{font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;margin-top:8px;color:var(--gold)}
  .foot-brand p{margin-top:24px;max-width:34ch;font-size:.92rem;line-height:1.7}
  .foot-col h5{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
  .foot-col a{display:block;font-size:.92rem;padding:7px 0;color:rgba(255,255,255,.66);transition:color .4s var(--ease)}
  .foot-col a:hover{color:#fff}
  .foot-bot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:30px;font-size:.74rem;letter-spacing:.06em;color:rgba(255,255,255,.42)}
  .foot-bot .legal{display:flex;gap:24px;flex-wrap:wrap}
  .foot-bot a:hover{color:#fff}

  /* ---------- RESPONSIVE ---------- */
  @media(max-width:980px){
    .intro-grid{grid-template-columns:1fr;gap:28px}
    .agency-inner{grid-template-columns:1fr;gap:46px}
    .contact-grid{grid-template-columns:1fr;gap:54px}
    .av-grid{grid-template-columns:1fr 1fr}
    .loc-grid{grid-template-columns:1fr;gap:36px}
    .foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}
  }
  @media(max-width:760px){
    nav.primary{position:fixed;inset:0;background:var(--ink);flex-direction:column;justify-content:center;gap:26px;transform:translateX(100%);transition:transform .6s var(--ease);z-index:90}
    nav.primary.open{transform:translateX(0)}
    nav.primary a{color:#fff!important;font-size:1.05rem}
    nav.primary .nav-cta{border-color:rgba(255,255,255,.6)}
    .menu-toggle{display:block;z-index:95}
    .menu-toggle.active span{background:#fff}
    .menu-toggle.active span:nth-child(1){top:9px;transform:rotate(45deg)}
    .menu-toggle.active span:nth-child(2){opacity:0}
    .menu-toggle.active span:nth-child(3){top:9px;transform:rotate(-45deg)}
    .rail{display:none}
    .estate{grid-template-columns:1fr;gap:30px}
    .estate.flip .estate-media{order:0}
    .av-grid{grid-template-columns:1fr}

    .stats{grid-template-columns:1fr}.foot-top{grid-template-columns:1fr}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;scroll-behavior:auto}
    .reveal{opacity:1;transform:none}
  }

/* ===== Pages projets & fiche bien (rendu serveur, SEO) ===== */
body.pub{background:var(--paper)}
.pub-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(20px,4vw,52px);background:rgba(252,252,251,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.pub-brand b{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.45rem;letter-spacing:.16em;color:var(--ink);display:block;line-height:1}
.pub-brand span{font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;color:var(--stone);margin-top:3px;display:block}
.pub-nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.pub-nav a{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone-d)}
.pub-nav a:hover{color:var(--bronze)}
.pub-nav .pub-cta{border:1px solid var(--bronze);color:var(--bronze);padding:9px 16px;border-radius:40px}
.pub-nav .pub-cta:hover{background:var(--bronze);color:#fff}
.pub-wrap{max-width:var(--maxw);margin:0 auto;padding:clamp(28px,5vw,56px) clamp(20px,4vw,52px)}
.crumb{font-size:.8rem;color:var(--stone);margin-bottom:30px}
.crumb a{color:var(--bronze)}
.pub-hero{margin-bottom:clamp(34px,5vw,56px)}
.pub-hero h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;margin:10px 0 14px}
.pub-hero .sub{color:var(--stone-d);max-width:54ch}
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(20px,2.5vw,32px)}
.pub-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.pub-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(22,18,12,.4)}
.pub-card-media{position:relative;aspect-ratio:4/3;background:radial-gradient(120% 90% at 70% 20%,rgba(243,166,39,.22),transparent 55%),linear-gradient(150deg,#231F20,#332E30);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pub-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pub-card-media .badge{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:2.4rem;color:rgba(243,237,226,.92)}
.pub-card-body{padding:22px 24px}
.pub-card-body .t{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze);margin-bottom:6px}
.pub-card-body h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.5rem;margin-bottom:12px}
.mini-specs{display:flex;gap:18px;flex-wrap:wrap;color:var(--stone-d);font-size:.85rem;margin-bottom:14px}
.pub-card .more{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--bronze);padding-bottom:3px}
.empty{color:var(--stone-d);padding:40px 0}

/* Fiche bien */
.bien-top{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,52px);align-items:start}
.bien-gallery .main{aspect-ratio:4/3;border-radius:5px;overflow:hidden;background:radial-gradient(120% 90% at 70% 20%,rgba(243,166,39,.22),transparent 55%),linear-gradient(150deg,#231F20,#332E30);display:flex;align-items:center;justify-content:center}
.bien-gallery .main img{width:100%;height:100%;object-fit:cover}
.bien-gallery .main .badge{font-family:'Cormorant Garamond',serif;font-size:3.4rem;color:rgba(243,237,226,.92)}
.bien-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.bien-thumbs img{width:84px;height:64px;object-fit:cover;border-radius:3px;border:1px solid var(--line);cursor:pointer;opacity:.7;transition:opacity .3s}
.bien-thumbs img:hover{opacity:1}
.bien-info .cat{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze)}
.bien-info h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1.05;margin:8px 0 6px}
.bien-info .typo{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:1.55rem;line-height:1.25;color:var(--bronze);margin-bottom:26px}
.bien-specs{display:flex;flex-wrap:wrap;gap:26px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:22px}
.bien-specs .v{font-family:'Cormorant Garamond',serif;font-size:1.5rem;display:block;line-height:1}
.bien-specs .k{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-top:5px;display:block}
.bien-info .desc{color:var(--stone-d);margin-bottom:24px}
.bien-info .price{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--bronze);margin-bottom:22px}
.bien-section{margin-top:clamp(40px,6vw,68px)}
.bien-section h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:1.7rem;margin-bottom:18px}
.equip-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 26px;padding:0}
.equip-list li{position:relative;padding-left:22px;color:var(--stone-d)}
.equip-list li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border:1px solid var(--bronze);transform:rotate(45deg)}
.palier-box{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:5px;padding:26px}
.palier-box .txt strong{display:block;font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ink);font-weight:500;margin-bottom:6px}
.palier-box img{width:100%;border-radius:4px}
.pub-footer{background:#1c1a1b;color:rgba(243,237,226,.7);padding:48px clamp(20px,4vw,52px);margin-top:clamp(50px,8vw,90px)}
.pub-footer .fwrap{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:.9rem}
.pub-footer a{color:var(--gold)}
@media(max-width:820px){.bien-top{grid-template-columns:1fr}.palier-box{grid-template-columns:1fr}}

/* ===== Cartes "Nos projets" (accueil) ===== */
.proj-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.5vw,34px);margin-top:clamp(44px,7vh,76px)}
.proj-card{display:block;background:var(--paper);border:1px solid var(--line);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.proj-card:hover{transform:translateY(-5px);box-shadow:0 26px 60px -34px rgba(22,18,12,.45)}
.proj-media{position:relative;aspect-ratio:16/10;display:flex;align-items:flex-end;padding:26px;background:linear-gradient(150deg,#231F20,#3a2f2a)}
.proj-media.vil{background:linear-gradient(150deg,#26201d,#3a302b)}
.proj-kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.proj-body{padding:28px clamp(24px,3vw,38px) 34px}
.proj-body h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:10px}
.proj-body p{color:var(--stone-d);margin-bottom:18px;max-width:46ch}
@media(max-width:760px){.proj-cards{grid-template-columns:1fr}}

/* ===== Champ select (formulaire de contact) ===== */
.select-field{margin:0 0 22px}
.select-field label{display:block;font-size:.78rem;letter-spacing:.04em;color:var(--stone-d);margin-bottom:8px}
.select-field select{width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:'Jost',sans-serif;font-size:1rem;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D34100' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer}
.select-field select:focus{outline:none;border-color:var(--bronze)}

/* ===== Logo dans l'en-tête ===== */
.brand-logo{height:50px;width:auto;display:block;transition:height .4s var(--ease)}
.scrolled .brand-logo{height:40px}
.scrolled .brand-logo.light{display:none!important}
.scrolled .brand-logo.dark{display:block!important}
@media(max-width:640px){.brand-logo{height:40px}.scrolled .brand-logo{height:34px}}

/* Photos des cartes "Nos projets" */
.proj-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proj-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,12,7,.6),rgba(16,12,7,.05))}
.proj-media .proj-kicker{position:relative;z-index:2}

/* Logo sur les pages projets / fiche bien */
.pub-brand img{height:50px;width:auto;display:block}
@media(max-width:640px){.pub-brand img{height:40px}}

/* En-tête pleine largeur : logo collé à gauche, menu à droite */
.site-header .header-inner{max-width:none;margin:0;padding-left:clamp(18px,2vw,34px);padding-right:clamp(18px,2vw,34px)}

/* ===== Projet : typologies, commodités, carte, 2 boutons ===== */
.bien-cta{display:flex;gap:12px;flex-wrap:wrap}
.btn-ghost{background:transparent;border:1px solid var(--bronze);color:var(--bronze)}
.btn-ghost:hover{background:var(--bronze);color:#fff}
.typo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.typo-card{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--paper)}
.typo-media{aspect-ratio:4/3;overflow:hidden;background:var(--cream)}
.typo-media img{width:100%;height:100%;object-fit:cover}
.typo-body{padding:18px 20px}
.typo-body h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.5rem;margin-bottom:8px}
.typo-specs{display:flex;gap:16px;flex-wrap:wrap;color:var(--bronze);font-size:.85rem;margin-bottom:10px}
.typo-body p{color:var(--stone-d);font-size:.92rem;margin-bottom:12px}
.typo-plan{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--bronze);padding-bottom:2px}
.map-addr{color:var(--stone-d);margin-bottom:14px}
.map-embed{border:1px solid var(--line);border-radius:5px;overflow:hidden}
.map-embed iframe{width:100%;height:360px;border:0;display:block}

/* ===== Badge 30 ans d'expérience (à côté du logo, toujours visible) ===== */
.brand-wrap{display:flex;flex-direction:row;align-items:center;gap:16px}
.exp-badge{display:inline-flex;align-items:center;gap:9px;color:var(--gold);transition:color .6s var(--ease);padding-left:16px;border-left:1px solid rgba(255,255,255,.35)}
.scrolled .exp-badge{color:var(--bronze);border-left-color:var(--line)}
.exp-badge b{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:2.5rem;line-height:.85;font-style:italic}
.exp-badge i{font-style:normal;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;line-height:1.25;max-width:7em}
@media(max-width:760px){.exp-badge i{display:none}.exp-badge{padding-left:12px}}
@media(max-width:560px){.exp-badge b{font-size:1.9rem}}

/* ===== Deux formulaires (contact / visite) ===== */
.form-switch{display:flex;gap:8px;margin-bottom:26px}
.fs-btn{flex:1;padding:11px 14px;background:transparent;border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.7);font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .35s var(--ease)}
.fs-btn:hover{color:#fff}
.fs-btn.active{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.anchor-offset{display:block;position:relative;top:-90px;visibility:hidden;height:0}

/* ===== Formulaire en fenêtre (modal) + pied de page coordonnées ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(16,12,7,.62);display:none;align-items:center;justify-content:center;z-index:200;padding:20px}
.modal-overlay.open{display:flex}
.modal-box{position:relative;background:var(--paper);max-width:460px;width:100%;padding:34px clamp(22px,4vw,40px);border-radius:6px;max-height:90vh;overflow:auto}
.modal-box h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.8rem;margin-bottom:18px}
.modal-x{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--stone-d)}
#pform{display:flex;flex-direction:column;gap:12px}
#pform input,#pform textarea{width:100%;padding:12px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);font-family:'Jost',sans-serif;font-size:1rem;resize:vertical}
#pform input:focus,#pform textarea:focus{outline:none;border-color:var(--bronze)}
.pform-done{color:var(--bronze)}
.pub-footer .foot-info .foot-h{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.4rem;color:var(--gold);margin-bottom:10px}
.pub-footer .foot-info p{margin:3px 0}
.pub-footer .foot-muted{color:rgba(243,237,226,.5)}
.pub-footer .foot-actions{display:flex;align-items:center}
.pub-footer .btn{background:var(--gold);color:var(--ink);border:none}
.pub-footer .btn:hover{background:var(--bronze);color:#fff}
.foot-copy{max-width:var(--maxw);margin:22px auto 0;font-size:.8rem;color:rgba(243,237,226,.45)}
.plan-box{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--cream)}
.plan-box img{width:100%;display:block}
.back-link{color:var(--bronze);font-size:.9rem}

/* Ancres : compenser l'en-tête fixe (le lien tombe pile sur la section) */
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:96px}

/* Accents de marque : bordure orange au survol des cartes */
.proj-card:hover{border-color:var(--gold)}
.pub-card:hover{border-color:var(--gold)}
.typo-card:hover{border-color:var(--gold)}

.card-slogan{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--bronze);font-size:1.05rem;margin-bottom:10px;line-height:1.3}

/* Badge 30 ans sur les pages publiques (projets/fiches), à côté du logo */
.pub-brand-wrap{display:flex;align-items:center;gap:14px}
.pub-exp-badge{display:inline-flex;align-items:center;gap:8px;color:var(--bronze);padding-left:14px;border-left:1px solid var(--line)}
.pub-exp-badge b{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:2.2rem;line-height:.85;font-style:italic}
.pub-exp-badge i{font-style:normal;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;line-height:1.2;max-width:6.6em}
@media(max-width:760px){.pub-exp-badge i{display:none}.pub-exp-badge{padding-left:10px}}

/* ==========================================================================
   Corrections mobile — v23
   1) "30 ans d'expérience" : le libellé était masqué sous 760px.
   2) Menu burger illisible : quand le header porte la classe .scrolled il a
      un backdrop-filter. Or un backdrop-filter crée un bloc conteneur pour
      les descendants position:fixed. Le menu, au lieu de couvrir l'écran,
      était donc réduit à la hauteur du header : son fond sombre ne couvrait
      qu'une bande, et les liens blancs débordaient sur la page blanche.
      On neutralise le backdrop-filter pendant l'ouverture du menu.
   ========================================================================== */
@media (max-width: 760px) {

  /* ---- 1) Libellé du badge ---- */
  .exp-badge i,
  .pub-exp-badge i {
    display: block;
    font-size: .5rem;
    letter-spacing: .1em;
    line-height: 1.2;
    max-width: 5.6em;
  }
  .exp-badge      { padding-left: 10px; gap: 6px; }
  .pub-exp-badge  { padding-left: 9px;  gap: 6px; }
  .exp-badge b    { font-size: 1.75rem; }
  .pub-exp-badge b{ font-size: 1.55rem; }
  .header-inner   { gap: 12px; }
  .brand-wrap,
  .pub-brand-wrap { gap: 9px; }
  .pub-brand img  { height: 36px !important; }

  /* ---- 2) Menu burger ---- */
  .site-header.nav-open,
  .site-header:has(nav.primary.open) {
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }
  nav.primary {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: #231F20;
    background: var(--ink);
    padding: 92px 26px 40px;
    overflow-y: auto;
    z-index: 110;
  }
  nav.primary a { color: #fff !important; }
  nav.primary .nav-cta {
    background: var(--gold) !important;
    border-color: var(--gold) !important;
    color: var(--ink) !important;
    padding: 13px 26px;
  }
  .menu-toggle { z-index: 120; }
  .menu-toggle.active span { background: #fff !important; }
}

@media (max-width: 380px) {
  .exp-badge i, .pub-exp-badge i { font-size: .46rem; max-width: 5em; }
  .exp-badge b   { font-size: 1.55rem; }
  .brand-logo    { height: 36px !important; }
}

/* ==========================================================================
   Corrections — v25
   ========================================================================== */

/* 1) Alignement du bouton "Nous contacter".
   Cause : le selecteur "nav.primary a" (specificite 0,1,2) l'emportait sur
   ".nav-cta" (0,1,0). Le bouton heritait donc padding-bottom:3px tout en
   gardant padding-top:11px : texte pousse vers le bas de ~4px.
   On symetrise les liens et on redonne la main au bouton. */
nav.primary a        { padding: 3px 0; }
nav.primary a.nav-cta{ padding: 11px 22px; }

/* 2) Libelle du menu deroulant : il etait en gris fonce (--stone-d) sur le
   fond sombre de la section contact, donc quasi illisible. On l'aligne sur
   les autres libelles du formulaire (dores, petites capitales). */
.select-field label {
  color: var(--gold);
  font-size: .66rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* 3) Defilement d'accueil : zoom nettement plus discret (voir main.js). */
.scene-img { transform: scale(1.05); }

/* ==========================================================================
   Signature studio — v26
   Monogramme en losange + libelle discret, centre en tout bas de page.
   Fonctionne sur les deux pieds de page (accueil sombre, pages projets clair).
   ========================================================================== */
.signature{
  display:flex; align-items:center; justify-content:center; gap:18px;
  margin-top:34px; padding-top:26px;
}
.signature .sig-rule{
  flex:1 1 0; max-width:180px; height:1px;
  background:linear-gradient(90deg,transparent,currentColor,transparent);
  opacity:.18;
}
.signature .sig{
  display:inline-flex; align-items:center; gap:12px;
  text-decoration:none; color:inherit; opacity:.55;
  transition:opacity .5s var(--ease);
}
.signature .sig:hover{ opacity:1; }

/* Monogramme : carre pivote a 45deg, lettres remises d'aplomb */
.signature .sig-mark{
  width:30px; height:30px; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid currentColor; transform:rotate(45deg);
  transition:border-color .5s var(--ease), transform .7s var(--ease);
}
.signature .sig:hover .sig-mark{
  border-color:var(--gold); transform:rotate(135deg);
}
.signature .sig-mark i{
  transform:rotate(-45deg); transition:transform .7s var(--ease), color .5s var(--ease);
  font-family:'Cormorant Garamond',serif; font-style:normal; font-weight:500;
  font-size:.86rem; letter-spacing:.06em; line-height:1;
}
.signature .sig:hover .sig-mark i{ transform:rotate(-135deg); color:var(--gold); }

.signature .sig-txt{ display:inline-flex; flex-direction:column; line-height:1.25; }
.signature .sig-txt em{
  font-style:normal; font-size:.56rem; letter-spacing:.28em;
  text-transform:uppercase; opacity:.7;
}
.signature .sig-txt b{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:1.02rem; letter-spacing:.2em;
  transition:color .5s var(--ease);
}
.signature .sig:hover .sig-txt b{ color:var(--gold); }

@media (max-width:560px){
  .signature{ gap:12px; margin-top:26px; padding-top:20px; }
  .signature .sig-rule{ max-width:60px; }
}
