/* Plombier Emmanuel — paper, bleu nuit, rouge, hairlines */
:root{
  --paper:#faf8f5; --cream:#f3efe8; --white:#fff;
  --nuit:#1b2a4a; --nuit-dk:#121d35; --ink:#1d2433; --muted:#545a66; --hair:#ddd6cb; --hair-dk:#c4bbad;
  --rouge:#c0473e; --rouge-txt:#a83b33;
  --serif:"Frank Ruhl Libre","David Libre",Georgia,serif; --latin:"Cormorant Garamond",Georgia,serif; --sans:"Assistant",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:1.125rem;line-height:1.7;color:var(--ink);background:var(--paper);padding-bottom:76px}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:500;line-height:1.2;color:var(--nuit)}
p{margin:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;inset-inline-start:12px;top:-60px;background:var(--nuit);color:#fff;padding:10px 16px;z-index:50}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--rouge);outline-offset:4px}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
bdi{unicode-bidi:isolate}
.ico{width:19px;height:19px;flex:none}
.latin{font-family:var(--latin);font-size:1.12em;font-weight:600;color:var(--nuit)}

.top{position:sticky;top:0;z-index:20;background:rgba(250,248,245,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--hair)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px}
.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1.1}
.wordmark{font-family:var(--latin);font-weight:600;font-size:1.5rem;color:var(--nuit);letter-spacing:.01em;white-space:nowrap}
.wordmark em{font-style:italic;font-weight:500;color:var(--rouge-txt)}
.brand-sub{font-size:.8rem;color:var(--muted);margin-top:3px}
.top-call{display:inline-flex;align-items:center;gap:7px;color:var(--nuit);text-decoration:none;font-weight:600;font-size:.98rem;border-bottom:1px solid var(--hair-dk);padding:4px 0}
.top-call .ico{width:16px;height:16px;color:var(--rouge-txt)}

.hero{padding:40px 0 56px;border-bottom:1px solid var(--hair)}
.hero-grid{display:grid;gap:40px}
.overline{display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:600;letter-spacing:.04em;color:var(--rouge-txt);margin-bottom:16px}
.rule{display:inline-block;width:36px;height:1px;background:var(--rouge)}
h1{font-size:clamp(2.1rem,7.6vw,3.5rem);font-weight:500;line-height:1.18}
h1 .rouge{color:var(--rouge-txt)}
.lead{margin-top:20px;color:var(--muted);max-width:33em}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border-radius:2px;font-weight:600;font-size:1.06rem;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.btn-nuit{background:var(--nuit);color:#fff;border:1px solid var(--nuit)}
.btn-nuit:hover{background:var(--nuit-dk)}
.btn-line{background:transparent;color:var(--nuit);border:1px solid var(--nuit)}
.btn-line .ico{color:var(--rouge-txt)}
.btn-line:hover{background:var(--white)}
.btn-sm{min-height:48px;font-size:1rem;padding:0 22px}
.hero .cta .btn{flex:1 1 200px}
.rating{display:flex;align-items:center;gap:10px;margin-top:22px;color:var(--muted);font-size:.98rem}
.stars{display:inline-flex;gap:3px;color:var(--rouge)}
.stars svg{width:14px;height:14px}

.frame{margin:0}
.frame-in{border:1px solid var(--hair-dk);padding:12px;background:var(--white);position:relative}
.frame-in::before{content:"";position:absolute;inset:5px;border:1px solid var(--hair);pointer-events:none}
.frame img{width:100%;aspect-ratio:4/3;object-fit:cover;position:relative}
figcaption{display:flex;align-items:baseline;gap:10px;font-size:.92rem;color:var(--muted);margin-top:10px}
.fig-no{font-family:var(--latin);font-style:italic;font-weight:500;font-size:1.05rem;color:var(--rouge-txt)}

.sec{padding:68px 0}
.sec-cream{background:var(--cream);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.sec-head{margin-bottom:30px}
.sec-head-c{text-align:center}
.sec-head-c .overline{justify-content:center}
h2{font-size:clamp(1.8rem,6vw,2.6rem)}

.side-photo{display:none;margin:28px 0 0}
.side-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--hair-dk);padding:8px;background:var(--white)}
.svc{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair-dk)}
.svc li{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--hair)}
.svc-n{font-family:var(--latin);font-size:2.1rem;font-weight:500;line-height:1;color:var(--rouge-txt);min-width:2.2ch}
.svc h3{font-size:1.35rem;margin-bottom:4px}
.svc p{color:var(--muted);font-size:1.04rem}

.diptych{display:grid;gap:26px}
.diptych figure{margin:0}
.diptych img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--hair-dk);padding:8px;background:var(--white)}

.loc-grid{display:grid;gap:28px}
.loc-txt{color:var(--muted);margin:10px 0 20px}
.map{position:relative;min-height:300px;border:1px solid var(--hair-dk);padding:8px;background:var(--white)}
.map-fallback{position:absolute;inset:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--cream);
  background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(27,42,74,.06) 31px 32px),repeating-linear-gradient(90deg,transparent 0 31px,rgba(27,42,74,.06) 31px 32px)}
.map-fb-word{font-family:var(--latin);font-style:italic;font-size:2.4rem;color:var(--nuit)}
.map-fb-he{font-family:var(--serif);font-size:1.1rem;color:var(--rouge-txt)}
.map iframe{position:relative;display:block;width:100%;height:284px;border:0}

.sec-contact{padding-top:20px}
.contact{text-align:center;border-top:1px solid var(--hair-dk);border-bottom:1px solid var(--hair-dk);padding:48px 8px;position:relative}
.contact::before,.contact::after{content:"";position:absolute;inset-inline:0;height:1px;background:var(--hair)}
.contact::before{top:5px}.contact::after{bottom:5px}
.wordmark-lg{font-size:2.1rem;margin-bottom:14px;white-space:normal}
.contact-txt{color:var(--muted);margin-top:10px}
.contact-phone{display:inline-block;margin-top:14px;font-family:var(--serif);font-size:clamp(1.9rem,8vw,2.6rem);color:var(--nuit);text-decoration:none}
.contact-phone:hover{color:var(--rouge-txt)}
.cta-c{justify-content:center}
.cta-c .btn{flex:1 1 180px;max-width:260px}

.foot{border-top:1px solid var(--hair);padding:22px 0 26px;font-size:.92rem;color:var(--muted)}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px}

.dock{position:fixed;inset-inline:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(250,248,245,.97);border-top:1px solid var(--hair-dk)}
.dock-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;font-weight:600;font-size:1.05rem;text-decoration:none;border-radius:2px}
.dock-call{background:var(--nuit);color:#fff}
.dock-wa{border:1px solid var(--nuit);color:var(--nuit)}
.dock-wa .ico{color:var(--rouge-txt)}

@media (min-width:700px){
  .diptych{grid-template-columns:1fr 1fr;gap:32px}
  .diptych img{aspect-ratio:4/5}
}
@media (min-width:960px){
  body{padding-bottom:0}
  .dock{display:none}
  .hero{padding:80px 0 88px}
  .hero-grid{grid-template-columns:1fr 1.05fr;align-items:center;gap:64px}
  .frame img{aspect-ratio:auto}
  .sec{padding:96px 0}
  .svc-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
  .side-photo{display:block}
  .diptych{max-width:900px;margin-inline:auto}
  .loc-grid{grid-template-columns:.8fr 1.2fr;align-items:center;gap:64px}
  .map{min-height:376px}
  .map iframe{height:360px}
  .contact{padding:64px 20px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
