:root{--ink:#151515;--paper:#f4f1eb;--white:#fff;--muted:#706e69;--accent:#b9a17f;--dark:#20201f}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}
.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(244,241,235,.95);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(0,0,0,.08);backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px}.brand>span{font-family:Manrope;font-size:25px;font-weight:700;letter-spacing:-1px}.brand small{max-width:135px;line-height:1.05;color:var(--muted)}nav{display:flex;gap:28px;font-size:14px}nav a:hover{opacity:.55}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:white;padding:17px 24px;border:0;font:600 14px "DM Sans";cursor:pointer}.btn-small{padding:12px 18px}.text-link{font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:4px}
.hero{min-height:calc(100vh - 84px);display:grid;grid-template-columns:1.05fr .95fr;padding:5vw;gap:5vw;align-items:center}.hero-copy{max-width:720px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.18em;margin:0 0 22px;color:#7c6b54}.hero h1,.section-head h2,.intro h2,.quotes h2,.about h2,.contact h2{font:600 clamp(42px,6vw,88px)/.98 Manrope;margin:0;letter-spacing:-.05em}.hero h1 em{font-style:normal;color:#88755d}.lead{font-size:19px;line-height:1.65;max-width:650px;color:#54514d;margin:30px 0}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.micro{font-size:12px;color:var(--muted);margin-top:15px}.hero-image{height:72vh;position:relative;overflow:hidden}.hero-image img{object-position:left center}.hero-card{position:absolute;right:20px;bottom:20px;background:white;padding:18px 22px;display:flex;flex-direction:column;gap:4px}.hero-card span{font-size:13px;color:var(--muted)}
.intro{padding:9vw 18vw;text-align:center;background:white}.intro h2{font-size:clamp(38px,5vw,70px)}.intro>p:last-child{font-size:19px;line-height:1.7;max-width:850px;margin:30px auto;color:var(--muted)}
.services,.portfolio{padding:9vw 6vw}.section-head{max-width:900px;margin-bottom:55px}.section-head h2{font-size:clamp(36px,4.5vw,64px)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards article{background:white;padding:34px;min-height:340px;position:relative}.cards article>span{font-size:12px;color:var(--muted)}.cards h3{font:600 28px Manrope;margin:70px 0 18px}.cards p{line-height:1.7;color:var(--muted)}.cards .featured{background:var(--ink);color:white}.cards .featured p{color:#c9c6c1}.pill{position:absolute;right:25px;top:25px;font-size:10px;letter-spacing:.1em;background:#fff;color:#111;padding:7px 9px}.extra{margin-top:18px;border:1px solid #ccc5bb;padding:24px 28px;display:flex;gap:35px}.extra span{color:var(--muted)}
.process{background:var(--dark);color:white;padding:9vw 6vw}.light .eyebrow{color:#bca98f}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid #555}.steps>div{padding:30px 22px 10px;border-right:1px solid #555}.steps b{font:500 28px Manrope;color:#bca98f}.steps h3{font:600 20px Manrope;margin:55px 0 12px}.steps p{font-size:14px;line-height:1.65;color:#bcbab5}
.quotes{padding:9vw 8vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.quotes h2{font-size:clamp(40px,5vw,68px)}.quotes>div>p:last-child{line-height:1.7;color:var(--muted);font-size:18px}.quote-box{background:#d9c9b3;padding:55px}.quote-box p{font:500 28px/1.35 Manrope!important;color:var(--ink)!important}.quote-box strong{font-size:14px}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.gallery figure{margin:0;height:520px;position:relative;overflow:hidden}.gallery .wide{grid-column:span 2;height:620px}.gallery figcaption{position:absolute;left:18px;bottom:18px;background:white;padding:14px 17px;display:flex;flex-direction:column}.gallery figcaption span{font-size:12px;color:var(--muted);margin-top:3px}
.about{display:grid;grid-template-columns:1fr 1fr;background:white}.about-image{min-height:720px;overflow:hidden}.about-image img{object-position:left center}.about>div:last-child{padding:9vw 7vw}.about h2{font-size:clamp(42px,5vw,72px)}.about .big{font:500 24px/1.45 Manrope;margin-top:30px}.about p:not(.eyebrow):not(.big){color:var(--muted);line-height:1.7}.about .text-link{display:inline-block;margin-top:15px}
.contact{padding:9vw 6vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:#d9c9b3}.contact h2{font-size:clamp(42px,5vw,70px)}.contact>div>p:not(.eyebrow){font-size:18px;line-height:1.7}.contact-direct{display:flex;flex-direction:column;gap:8px;margin-top:30px;font-weight:600}.contact form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600}.contact input,.contact select,.contact textarea{width:100%;padding:15px;border:1px solid #aaa49b;background:#f5f1eb;font:14px "DM Sans"}.full{grid-column:span 2}.form-note{font-size:11px;color:#625f59;margin:0}
footer{background:#111;color:white;padding:40px 6vw;display:flex;justify-content:space-between;gap:30px}footer>div{display:flex;flex-direction:column;gap:7px}footer span{font-size:13px;color:#aaa}
@media(max-width:900px){nav{display:none}.topbar{height:72px}.topbar .btn-small{font-size:11px;padding:10px}.brand small{display:none}.hero{grid-template-columns:1fr;padding:45px 6vw 6vw}.hero-image{height:62vh;order:-1}.hero h1{font-size:50px}.intro{padding:80px 7vw}.cards{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.steps>div{border-right:0;border-bottom:1px solid #555}.steps h3{margin:18px 0 8px}.quotes,.about,.contact{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.gallery .wide{grid-column:span 1}.gallery figure,.gallery .wide{height:440px}.about-image{min-height:540px}.contact form{grid-template-columns:1fr}.full{grid-column:span 1}.extra{flex-direction:column;gap:8px}footer{flex-direction:column}}
@media(max-width:520px){.hero-image{height:52vh}.hero h1{font-size:43px}.lead{font-size:17px}.gallery figure,.gallery .wide{height:330px}.about-image{min-height:450px}.contact{padding:70px 6vw}.topbar{padding:0 4vw}.topbar .btn-small{max-width:170px;text-align:center}.quote-box{padding:32px}.quote-box p{font-size:22px!important}}

/* V2 — direction architecturale: chêne chaud + verre cannelé */
.signature{
  min-height:760px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:stretch;
  background:
    linear-gradient(90deg,rgba(18,17,15,.84),rgba(18,17,15,.48)),
    url("assets/kitchen_wood.jpeg") center/cover no-repeat;
  color:#fff;
  overflow:hidden;
}
.signature-glass{
  margin:7vw 0 7vw 6vw;
  padding:5vw;
  align-self:center;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 30px 70px rgba(0,0,0,.18);
}
.signature-glass:before{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  opacity:.22;
  background:repeating-linear-gradient(90deg,
    rgba(255,255,255,.34) 0 1px,
    rgba(255,255,255,.03) 1px 9px,
    rgba(0,0,0,.12) 9px 11px);
}
.signature-glass>*{position:relative;z-index:1}
.signature h2{margin:0;font:600 clamp(45px,5.3vw,82px)/.98 Manrope;letter-spacing:-.055em}
.signature h2 span{display:block}
.signature h2 .warm{color:#d5b78e}
.signature .decision{font:500 clamp(20px,2vw,29px)/1.4 Manrope;margin:35px 0 0}
.signature-copy{
  align-self:end;
  margin:0 6vw 7vw 5vw;
  max-width:570px;
  padding:30px 0;
  border-top:1px solid rgba(255,255,255,.45)
}
.signature-copy p{font-size:19px;line-height:1.75;color:#eee9e1}
.signature-copy strong{color:#fff}
.hero:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,#7c5d3c,#d0b48b,#6b4d32);
}
.hero{position:relative}
@media(max-width:900px){
  .signature{grid-template-columns:1fr;min-height:auto}
  .signature-glass{margin:70px 6vw 25px;padding:9vw 7vw}
  .signature-copy{margin:0 8vw 70px}
}

/* V3 refinements */
.brand-logo img{
  width:48px;height:48px;object-fit:contain;border-radius:50%;
  filter:grayscale(1) contrast(1.08);
}
.brand-logo small{font-size:10px;letter-spacing:.08em;text-transform:uppercase;line-height:1.25}
.topbar{box-shadow:0 1px 0 rgba(0,0,0,.04)}
.hero-copy:before{
  content:"";display:block;width:62px;height:3px;margin-bottom:28px;
  background:linear-gradient(90deg,#6f4e31,#c7aa7d);
}
.benefits{padding:9vw 6vw;background:#ece6dc;display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}
.benefit-title h2{font:600 clamp(40px,5vw,72px)/1 Manrope;margin:0;letter-spacing:-.05em}
.benefit-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #b8afa2;border-left:1px solid #b8afa2}
.benefit-grid article{padding:35px;min-height:270px;border-right:1px solid #b8afa2;border-bottom:1px solid #b8afa2;background:rgba(255,255,255,.2)}
.benefit-grid b{font-size:11px;color:#8a7357;letter-spacing:.12em}
.benefit-grid h3{font:600 23px Manrope;margin:55px 0 12px}
.benefit-grid p{color:#6b665f;line-height:1.65;font-size:14px}
.section-intro{font-size:18px;line-height:1.7;color:var(--muted);max-width:700px}
.gallery figure img{transition:transform .7s ease,filter .7s ease}
.gallery figure:hover img{transform:scale(1.025);filter:brightness(.92)}
.gallery figcaption{border-left:3px solid #a88a64}
.cards article{transition:transform .25s ease,box-shadow .25s ease}
.cards article:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(0,0,0,.07)}
@media(max-width:900px){
  .benefits{grid-template-columns:1fr}
  .benefit-grid{grid-template-columns:1fr}
  .brand-logo small{display:none}
}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.shown{opacity:1;transform:none}

/* TRUE V3 — obvious brand + portfolio redesign */
.brand-logo img{width:72px;height:72px;border-radius:0;filter:none;object-fit:contain}
.topbar{height:96px}
.hero-image img{object-fit:cover;object-position:center}
.about-image img{object-fit:cover;object-position:center}
.project{margin:0 0 100px}
.project-copy{display:grid;grid-template-columns:70px 1fr;column-gap:25px;max-width:850px;margin-bottom:30px}
.project-no{grid-row:1/5;font:500 48px Manrope;color:#b39a78;border-right:1px solid #cfc7bc;padding-right:20px}
.project-type{font-size:11px;letter-spacing:.18em;font-weight:700;color:#876e50;margin:3px 0 10px}
.project-copy h3{font:600 clamp(30px,4vw,52px)/1.05 Manrope;letter-spacing:-.04em;margin:0 0 14px}
.project-copy>p:last-child{color:var(--muted);line-height:1.65;margin:0;max-width:650px}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.story-grid.two{grid-template-columns:1fr 1fr}
.story-grid figure{margin:0;height:480px;position:relative;overflow:hidden}
.story-grid img,.single-photo img,.more-grid img{width:100%;height:100%;object-fit:cover}
.story-grid figcaption{position:absolute;left:15px;bottom:15px;background:rgba(244,241,235,.94);padding:10px 14px;font-weight:600;font-size:13px}
.single-photo{height:650px;margin:0;overflow:hidden}
.more-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:270px;gap:12px}
.more-grid img:first-child{grid-row:span 2}
.more-grid img:last-child{grid-column:span 2}
@media(max-width:900px){
 .brand-logo img{width:52px;height:52px}.topbar{height:76px}
 .project-copy{grid-template-columns:48px 1fr}.project-no{font-size:34px}
 .story-grid,.story-grid.two{grid-template-columns:1fr}
 .story-grid figure{height:390px}.single-photo{height:440px}
 .more-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
 .more-grid img:first-child,.more-grid img:last-child{grid-row:auto;grid-column:auto}
}

/* Logo DDC final fourni par David */
.brand-logo img{
  width:78px;
  height:78px;
  object-fit:contain;
  padding:0;
  background:transparent;
  border-radius:0;
  filter:none;
}
@media(max-width:900px){
  .brand-logo img{width:58px;height:58px}
}

/* V4 — protection visuelle des photos + filigrane de marque */
.watermarked{position:relative}
.watermarked::after{
  content:"";
  position:absolute;
  right:14px;
  bottom:14px;
  width:58px;
  height:58px;
  background:url("assets/logo-ddc.png") center/contain no-repeat;
  opacity:.62;
  pointer-events:none;
  z-index:5;
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.35));
}
.hero-image.watermarked::after{display:none}

/* Grand logo filigrane du hero, placé sur la zone du réfrigérateur */
.hero-logo-filigree{
  position:absolute!important;
  z-index:4;
  width:min(31vw,330px)!important;
  height:auto!important;
  right:8%;
  top:50%;
  transform:translateY(-50%);
  object-fit:contain!important;
  opacity:.42;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.22));
  pointer-events:none;
}

/* Le cartouche "Un seul interlocuteur" reste proportionnel à la photo */
.about-card,.image-card,.portrait-card{
  box-sizing:border-box;
  max-width:min(88%,360px);
  width:auto;
  height:auto;
  min-height:0;
}
.about-image .floating-card,
.about-image .image-note,
.about-image .about-card{
  max-width:calc(100% - 32px);
  width:auto;
  padding:18px 22px;
  box-sizing:border-box;
}
@media(max-width:900px){
  .watermarked::after{width:46px;height:46px;right:10px;bottom:10px}
  .hero-logo-filigree{width:190px!important;right:5%;opacity:.38}
}

/* CORRECTION DEFINITIVE : aucun filigrane sur les portraits de David */
#david .watermarked::after,
#david .about-image::after,
#david .no-watermark::after {
  content:none !important;
  display:none !important;
  background:none !important;
}
#david .about-image { position:relative; }

/* Correction ciblée : aucun grand logo sur la photo de David dans le hero */
.hero-image .hero-logo-filigree { display:none !important; }

/* Aucun cartouche HTML par-dessus le montage David : le texte est déjà intégré à l'image */
.hero-image .hero-card{display:none!important;}

/* Correction section David : afficher le montage complet, sans couper le cartouche intégré */
#david .about-image{
  overflow:visible !important;
  height:auto !important;
  min-height:0 !important;
  align-self:center !important;
  background:transparent !important;
}
#david .about-image img{
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  display:block !important;
}
@media(max-width:900px){
  #david .about-image img{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
  }
}

/* Photos David : aucun texte ni cartouche superposé */
.hero-image .hero-card,
#david .hero-card,
#david .about-card,
#david .image-note,
#david .floating-card { display:none !important; }

/* V6 — identité DDC renforcée */
.brand-ddc{gap:14px}
.brand-ddc .brand-words{display:flex;flex-direction:column;gap:2px}
.brand-ddc .brand-words b{font:700 20px/1 Manrope,sans-serif;letter-spacing:.14em;color:#272724}
.brand-ddc .brand-words small{font:600 9px/1.25 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}

.ddc-identity{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:.72fr 1.4fr .9fr;
  gap:50px;
  align-items:center;
  padding:90px max(5vw,40px);
  background:#eee8dd;
  border-top:1px solid rgba(29,29,27,.12);
  border-bottom:1px solid rgba(29,29,27,.12);
}
.ddc-monogram{
  font:700 clamp(72px,11vw,170px)/.8 Manrope,sans-serif;
  letter-spacing:-.08em;
  color:#252522;
  opacity:.09;
  white-space:nowrap;
}
.ddc-identity-copy h2{
  margin:10px 0 20px;
  font:600 clamp(36px,4.5vw,68px)/.98 Manrope,sans-serif;
  letter-spacing:-.055em;
  color:#22221f;
}
.ddc-identity-copy h2 em{font-style:normal;color:#8a6a4a}
.ddc-identity-copy>p:last-child{max-width:650px;line-height:1.7;color:#666159}
.ddc-motto{
  border-left:1px solid #a58b6c;
  padding:20px 0 20px 28px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ddc-motto span{font:600 13px/1.45 Manrope,sans-serif;letter-spacing:.16em;color:#282824}
.ddc-motto small{font-size:12px;color:#7b746b}

.ddc-brand-cta{
  position:relative;
  overflow:hidden;
  min-height:360px;
  padding:80px max(6vw,50px);
  background:#242421;
  color:#f3efe7;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:40px;
}
.ddc-brand-cta .eyebrow{color:#b99c78}
.ddc-brand-cta h2{
  position:relative;
  z-index:2;
  margin:12px 0 0;
  max-width:820px;
  font:600 clamp(38px,5vw,72px)/1 Manrope,sans-serif;
  letter-spacing:-.055em;
}
.ddc-watermark{
  position:absolute;
  right:-2vw;
  bottom:-4vw;
  font:700 clamp(150px,27vw,430px)/.72 Manrope,sans-serif;
  letter-spacing:-.09em;
  color:#fff;
  opacity:.035;
  pointer-events:none;
}
.btn-light{
  position:relative;
  z-index:2;
  background:#f1ede5!important;
  color:#242421!important;
  white-space:nowrap;
}
footer strong:before{content:"DDC  /  ";letter-spacing:.08em;color:#9b7b58}

@media(max-width:900px){
  .brand-ddc .brand-words b{font-size:16px}
  .brand-ddc .brand-words small{display:none}
  .ddc-identity{grid-template-columns:1fr;padding:60px 24px;gap:25px}
  .ddc-monogram{position:absolute;right:-15px;top:30px;font-size:110px}
  .ddc-identity-copy,.ddc-motto{position:relative;z-index:2}
  .ddc-motto{padding-left:18px}
  .ddc-brand-cta{grid-template-columns:1fr;padding:60px 24px;min-height:330px}
  .ddc-brand-cta .btn{justify-self:start}
}

/* V6 correction — vrai logo officiel à la place du grand DDC */
.ddc-logo-watermark{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  opacity:1 !important;
  font-size:0 !important;
}
.ddc-logo-watermark img{
  display:block !important;
  width:min(25vw,330px) !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  opacity:.10 !important;
  filter:none !important;
  pointer-events:none !important;
}
@media(max-width:900px){
  .ddc-logo-watermark{
    position:absolute !important;
    right:-10px !important;
    top:22px !important;
    width:145px !important;
  }
  .ddc-logo-watermark img{
    width:145px !important;
    opacity:.08 !important;
  }
}

/* Tampon 25 ans et configurateur de pièce */
.signature-side{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:35px;
  margin:7vw 6vw 7vw 5vw;
  min-width:0;
}
.experience-stamp{display:block;width:clamp(190px,20vw,280px);max-width:100%;height:auto;flex-shrink:0;transform:rotate(-12deg)}
.stamp-paper{fill:#eee5d6;fill-opacity:.86}
.stamp-ink{fill:#111;stroke:#111;opacity:.92}
.stamp-ring{font:700 14px "DM Sans",Arial,sans-serif;letter-spacing:1.4px;stroke:none}
.stamp-number{font:700 83px Manrope,Arial,sans-serif;letter-spacing:-5px;stroke:none}
.stamp-years{font:700 25px "DM Sans",Arial,sans-serif;letter-spacing:5px;stroke:none}

.signature-side .signature-copy{margin:0}
@media(max-width:900px){.signature-side{margin:10px 8vw 70px;gap:30px}.experience-stamp{width:210px}.signature-side .signature-copy{margin:0;align-self:center}}
.contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#visitForm>button:disabled{opacity:.65;cursor:wait}
#contactStatus{font-size:13px;line-height:1.5;color:#29251f}
.room-planner{min-width:0;border:1px solid #aaa08f;background:rgba(255,255,255,.28);padding:20px}
.room-planner summary{cursor:pointer;font-weight:600;font-size:16px;line-height:1.5}
.room-planner summary span{display:inline-block;font-size:11px;font-weight:400;color:#62594d;margin-left:8px}
.room-planner p{font-size:14px;line-height:1.6}
.room-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
.room-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.room-planner button{padding:11px 14px;border:1px solid #8d8170;background:#faf8f3;color:#151515;font:600 12px "DM Sans",Arial,sans-serif;cursor:pointer}
.room-planner button:hover:not(:disabled){background:#e6d9c5}
.room-planner button:disabled{opacity:.45;cursor:default}
.room-planner :focus-visible{outline:2px solid #151515;outline-offset:3px}
.room-planner .room-help{font-size:12px;color:#62594d}
#roomCanvas{display:block;width:100%;height:auto;border:1px solid #b4aa9b;background:#faf8f3}
#roomCanvas.is-drawing{cursor:crosshair}
#roomStatus{font-weight:600;font-size:13px}
@media(max-width:520px){.room-planner{padding:14px}.room-controls{grid-template-columns:1fr}.room-actions button{flex:1 1 140px}}
