/* Plomberie JG – motion layer. Disabled automatically for users who prefer reduced motion. */
html{scroll-behavior:smooth}

/* Scroll progress bar */
.mo-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:200;pointer-events:none;
  background:linear-gradient(90deg,var(--blue,#2260b2),var(--accent,#2f80ed),var(--link,#5b9bf0));
  transform-origin:0 50%;transform:scaleX(0);will-change:transform}

/* Header: soft shadow once the page is scrolled */
header.pjg.pjg-header{transition:box-shadow .3s ease,background-color .3s ease}
header.pjg.pjg-header.mo-scrolled{box-shadow:0 8px 28px rgba(0,0,0,.55)}
.pjg .pjg-hd-logo img{transition:scale .3s ease}
.pjg .pjg-hd-logo:hover img{scale:1.04}
.pjg .pjg-hd-link{position:relative;transition:color .2s ease}
.pjg .pjg-hd-link::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--accent,#2f80ed);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.pjg .pjg-hd-link:hover::after,.pjg .pjg-hd-link:focus-visible::after{transform:scaleX(1)}

/* Hero entrance (runs on load) */
@keyframes mo-up{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes mo-zoom{from{scale:1.08}to{scale:1}}
.pjg-hero .pjg-eyebrow,.pjg-hero h1,.pjg-hero .pjg-bodyL,.pjg-hero .pjg-body,.pjg-hero .pjg-btn{animation:mo-up .8s cubic-bezier(.2,.7,.2,1) both}
.pjg-hero .pjg-eyebrow{animation-delay:.05s}
.pjg-hero h1{animation-delay:.15s}
.pjg-hero .pjg-bodyL,.pjg-hero .pjg-body{animation-delay:.3s}
.pjg-hero .pjg-btn{animation-delay:.45s}
.pjg-hero .pjg-btn + .pjg-btn{animation-delay:.55s}
.pjg-hero img{animation:mo-zoom 2.4s ease-out both}

/* Scroll reveal (only active when JS is running, so content is never hidden without it) */
html.mo-js .mo-reveal{opacity:0;translate:0 32px;
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),translate .7s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--mo-d,0ms)}
html.mo-js .mo-reveal.mo-in{opacity:1;translate:0 0}

/* Hover / interaction */
.pjg .pjg-card,.pjg .pjg-rev-card{transition:translate .25s ease,box-shadow .25s ease,border-color .25s ease}
.pjg .pjg-card:hover,.pjg .pjg-rev-card:hover{translate:0 -6px;box-shadow:0 18px 40px rgba(0,0,0,.45),0 0 0 1px rgba(47,128,237,.35)}
.pjg .pjg-ico{transition:scale .25s ease,rotate .25s ease}
.pjg .pjg-card:hover .pjg-ico{scale:1.12;rotate:-4deg}
.pjg .pjg-btn{transition:translate .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease}
.pjg .pjg-btn:hover{translate:0 -2px;box-shadow:0 10px 24px rgba(47,128,237,.35)}
.pjg .pjg-btn:active{translate:0 0;box-shadow:none}
.pjg .pjg-btn--primary{background-image:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);background-size:250% 100%;background-position:120% 0}
.pjg .pjg-btn--primary:hover{background-position:-20% 0;transition:background-position .9s ease,translate .2s ease,box-shadow .2s ease}
.pjg .pjg-btn .pjg-i,.pjg .pjg-link .pjg-i{transition:translate .2s ease}
.pjg .pjg-btn:hover .pjg-i-arrow-link,.pjg .pjg-link:hover .pjg-i-arrow-link{translate:4px 0}
.pjg .pjg-link{transition:color .2s ease}
.pjg img{transition:scale .5s ease}
.pjg .pjg-card:hover img,.pjg .pjg-rev-card:hover img,.pjg .pjg-sv-row:hover img{scale:1.04}

/* Urgent phone button gentle pulse */
@keyframes mo-pulse{0%{box-shadow:0 0 0 0 rgba(47,128,237,.5)}70%{box-shadow:0 0 0 14px rgba(47,128,237,0)}100%{box-shadow:0 0 0 0 rgba(47,128,237,0)}}
.pjg-hero .pjg-btn--primary{animation:mo-up .8s cubic-bezier(.2,.7,.2,1) .45s both,mo-pulse 2.6s ease-out 1.6s 3}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.mo-js .mo-reveal{opacity:1;translate:none}
  .mo-progress{display:none}
}

/* Client logo strip (home page): seamless infinite scroll, pauses on hover */
.pjg.pjg-clients.pjg-clients{padding:48px 0}
.pjg-marq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pjg-marq-row{display:flex;width:max-content;animation:mo-marq var(--mo-dur,60s) linear infinite;will-change:transform}
.pjg-marq:hover .pjg-marq-row{animation-play-state:paused}
.pjg-marq-row ul{display:flex;align-items:center;flex:none;margin:0;padding:0;list-style:none}
.pjg .pjg-marq-row li{flex:none;display:flex;align-items:center;justify-content:center;height:150px;min-width:280px;margin-right:48px;padding:0 48px;
  background:#fff;border-radius:20px;box-shadow:0 10px 28px rgba(0,0,0,.4);transition:translate .25s ease,box-shadow .25s ease}
.pjg .pjg-marq-row li:hover{translate:0 -6px;box-shadow:0 18px 36px rgba(0,0,0,.5)}
.pjg .pjg-marq-row img{height:var(--h,80px);width:auto;max-width:260px;object-fit:contain;display:block}
@keyframes mo-marq{from{transform:translateX(0)}to{transform:translateX(var(--mo-shift,-50%))}}
@media (max-width:640px){
  .pjg.pjg-clients.pjg-clients{padding:32px 0}
  .pjg .pjg-marq-row li{height:104px;min-width:190px;margin-right:28px;padding:0 30px;border-radius:16px}
  .pjg .pjg-marq-row img{height:calc(var(--h,80px) * .68);max-width:170px}
}
@media (prefers-reduced-motion:reduce){
  .pjg-marq{-webkit-mask-image:none;mask-image:none}
  .pjg-marq-row{width:auto;flex-wrap:wrap;justify-content:center;padding:0 16px;row-gap:20px}
  .pjg-marq-row ul{flex-wrap:wrap;justify-content:center;row-gap:20px}
  .pjg-marq-dup{display:none!important}
}

/* Reviews: reviewer photo on the avatar; long carousels stay fully scrollable on desktop */
.pjg .pjg-rev-av{position:relative;overflow:hidden}
.pjg .pjg-rev-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;scale:1!important;transition:none}
@media (min-width:1101px){
  .pjg .pjg-rev-car .pjg-rev-track{justify-content:start;padding-inline:0}
  .pjg .pjg-rev-car .pjg-rev-arrow--prev{left:-22px}
  .pjg .pjg-rev-car .pjg-rev-arrow--next{right:-22px}
}

/* Reviews: Google-style stars + "Lire la suite" for long reviews */
.pjg .pjg-rev-car .pjg-rev-track{align-items:start}
.pjg .pjg-rev-src{display:flex;align-items:center;flex-wrap:wrap}
.pjg .pjg-stars{display:inline-flex;gap:1px;margin-right:8px;color:#fbbc04}
.pjg .pjg-stars svg{display:block}
.pjg .pjg-rev-card blockquote.is-clamped{overflow:hidden;transition:max-height .4s ease;
  -webkit-mask-image:linear-gradient(#000 72%,transparent);mask-image:linear-gradient(#000 72%,transparent)}
.pjg .pjg-rev-card.is-open blockquote.is-clamped{-webkit-mask-image:none;mask-image:none}
.pjg .pjg-rev-card .pjg-rev-more{align-self:flex-start;margin-top:8px;padding:4px 0;background:none;border:0;cursor:pointer;
  font:600 15px/22px 'Inter',sans-serif;color:var(--blue,#2260b2);text-decoration:underline;text-underline-offset:4px}
.pjg .pjg-rev-card .pjg-rev-more:hover{color:var(--ink-strong,#0b1f3a)}
@media (prefers-reduced-motion:reduce){.pjg .pjg-rev-card blockquote.is-clamped{transition:none}}

/* Social links (footer) */
.pjg .pjg-ft-h-soc{display:block;margin-top:26px;line-height:20px}
.pjg .pjg-ft-social{display:flex;gap:10px;margin:16px 0 0;padding:0;list-style:none}
.pjg .pjg-ft-social a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line,#2a2f38);color:var(--white,#fff);transition:background-color .2s ease,border-color .2s ease,translate .2s ease,color .2s ease}
.pjg .pjg-ft-social a:hover,.pjg .pjg-ft-social a:focus-visible{background:var(--accent,#2f80ed);border-color:var(--accent,#2f80ed);translate:0 -3px}

/* ---- Language switch (FR / EN) ---- */
.pjg .pjg-lang{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:4px;color:var(--white);font:600 14px/1 'Inter',sans-serif;letter-spacing:.04em;text-decoration:none;transition:border-color .2s,background .2s}
.pjg .pjg-lang:hover{border-color:var(--accent);background:rgba(47,128,237,.12)}
.pjg .pjg-lang:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.pjg .pjg-hd-mob .pjg-lang{height:44px}

/* ===== SEO upgrade: grouped nav, footer address, hub, city & service blocks ===== */
.pjg .pjg-dd-menu .pjg-dd-grp{padding:6px 4px 10px}
.pjg .pjg-dd-menu .pjg-dd-gt{margin:0;padding:8px 12px 6px;font:600 12px/1.3 'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pjg .pjg-dd-menu .pjg-dd-grp ul{display:block}
.pjg .pjg-dd-menu .pjg-dd-grp li:last-child{margin:0;padding:0;border:0;grid-column:auto}
.pjg .pjg-dd-menu .pjg-dd-grp a{min-height:38px}
.pjg .pjg-panel .pjg-pl-sub .pjg-pl-gt{display:block;margin-top:10px;padding:8px 0 2px;font:600 12px/1.3 'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pjg .pjg-ft-addr{margin-top:10px;font-style:normal}
.pjg .pjg-ft-hours{margin-top:10px}
.pjg .pjg-ft-cities{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:36px var(--gut) 0;padding-top:24px;border-top:1px solid var(--line);color:var(--muted)}
.pjg .pjg-ft-cities .pjg-ft-cl{margin:0;font-weight:600;color:var(--muted)}
.pjg .pjg-ft-cities ul{display:flex;flex-wrap:wrap;gap:2px 18px;margin:0;padding:0;list-style:none}
.pjg .pjg-ft-cities a{display:inline-flex;align-items:center;min-height:36px;color:var(--white)}
.pjg .pjg-ft-cities a:hover{color:var(--link)}
.pjg .pjg-ft-cities+.pjg-ft-bot{margin-top:24px}
/* shared blocks */
.pjg.pjg-nx{padding:88px 0;border-bottom:1px solid var(--line)}
.pjg.pjg-nx--alt{background:var(--bg-black)}
.pjg.pjg-nx .pjg-in>.pjg-bodyL{margin-top:18px;max-width:780px}
.pjg .pjg-nx-sp{margin-top:36px}
.pjg .pjg-nx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:32px}
.pjg .pjg-nx-grid--3{grid-template-columns:repeat(3,1fr)}
.pjg .pjg-nx-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:6px;transition:border-color .15s,transform .15s}
.pjg .pjg-nx-card h3 a{color:var(--white)}
.pjg .pjg-nx-card h3 a::after{content:"";position:absolute;inset:0}
.pjg .pjg-nx-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.pjg .pjg-nx-card--st:hover{border-color:var(--line);transform:none}
.pjg .pjg-nx-card--st img{width:100%;height:auto;border-radius:4px}
.pjg .pjg-nx-more{margin-top:auto;padding-top:6px;font:600 14px/1.3 'Inter',sans-serif;color:var(--link)}
.pjg .pjg-nx-more::after{content:" →"}
.pjg .pjg-nx-qa{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:32px}
.pjg .pjg-nx-qa article{padding-top:18px;border-top:2px solid var(--accent)}
.pjg .pjg-nx-qa p{margin-top:10px}
.pjg .pjg-nx-prose{display:grid;gap:18px;margin-top:20px;max-width:820px}
.pjg .pjg-nx-tags{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none}
.pjg .pjg-nx-tags a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;color:var(--white);font:500 15px/1.3 'Inter',sans-serif}
.pjg .pjg-nx-tags a:hover{border-color:var(--accent);color:var(--link)}
.pjg .pjg-nx-fams{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:32px}
.pjg .pjg-nx-fam h3 a{color:var(--white)}
.pjg .pjg-nx-fam ul{margin:12px 0 0;padding:0;list-style:none}
.pjg .pjg-nx-fam li a{display:flex;align-items:center;min-height:40px;color:var(--muted);font:400 15px/1.3 'Inter',sans-serif}
.pjg .pjg-nx-fam li a:hover{color:var(--link)}
.pjg .pjg-nx-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.pjg.pjg-nx--cta .pjg-in>.pjg-bodyL{max-width:640px}
@media (max-width:1100px){.pjg.pjg-nx{padding:64px 0}.pjg .pjg-nx-fams{grid-template-columns:repeat(2,1fr)}.pjg .pjg-nx-qa,.pjg .pjg-nx-grid--3{grid-template-columns:1fr}}
@media (max-width:640px){.pjg.pjg-nx{padding:48px 0}.pjg .pjg-nx-fams{grid-template-columns:1fr}.pjg .pjg-nx-btns .pjg-btn{width:100%}.pjg .pjg-ft-cities{margin-left:20px;margin-right:20px}}
