.pj-page { background: #fff; }
.pj-intro { padding: 2rem 0 1.75rem; }
.pj-intro .wan-breadcrumb { margin-bottom: 1.75rem; }
.pj-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.pj-type { margin: 0 0 .5rem; font-size: .8rem; color: #366BB2; font-weight: 600; }
.pj-heading-row h1 { font: italic 600 clamp(2.7rem, 5vw, 4.8rem)/1.05 'Cormorant Garamond', Georgia, serif; letter-spacing: -.8px; color: #302D2D; margin: 0 0 .6rem; overflow-wrap: anywhere; }
.pj-location { font-size: .88rem; color: #5b666d; margin: 0; }
.pj-location a { color: #366BB2; text-underline-offset: 4px; }
.pj-badges { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .2rem; }
.pj-badge { padding: .45rem .8rem; border-radius: 3px; font-size: .76rem; font-weight: 600; background: #FFDE5B; color: #302D2D; }
.pj-badge.badge-realise { background: #366BB2; color: #fff; }
.pj-badge.badge-encours { background: #302D2D; color: #FFDE5B; }
.pj-deal { background: #e7e6e5; }
.pj-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 2rem; align-items: start; padding-bottom: 4rem; }
.pj-gallery { min-width: 0; }
.pj-gallery-main { display: block; position: relative; width: 100%; aspect-ratio: 4/3; border: 0; padding: 0; border-radius: 6px; overflow: hidden; background: #e7e6e5; cursor: zoom-in; text-decoration: none; }
.pj-gallery-main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pj-gallery-caption { position: absolute; right: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .6rem; background: rgba(255,255,255,.95); color: #302D2D; padding: .65rem .9rem; font-size: .76rem; font-weight: 500; box-shadow: 0 2px 8px #0001; border-radius: 3px; }
.pj-gallery-caption svg { width: 17px; height: 17px; }
.pj-gallery-toolbar { display: flex; justify-content: space-between; gap: 1rem; margin: 1rem 0 .7rem; align-items: center; }
.pj-gallery-toolbar h2 { margin: 0; font: 600 .8rem 'Inter', sans-serif; }
.pj-gallery-toolbar span { font-size: .72rem; color: #606b72; }
.pj-thumbs { display: flex; gap: .65rem; overflow-x: auto; padding: .15rem .15rem .75rem; scrollbar-width: thin; scroll-snap-type: x proximity; }
.pj-thumb { display: block; flex: 0 0 110px; height: 82px; scroll-snap-align: start; position: relative; overflow: hidden; border: 1px solid #d9dddd; border-radius: 3px; background: #e7e6e5; padding: 0; cursor: zoom-in; }
.pj-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pj-thumb--plan img { object-fit: contain; background: #fff; }
.pj-thumb-tag { position: absolute; bottom: 0; left: 0; background: rgba(48,45,45,.9); color: #fff; font-size: .6rem; padding: .2rem .4rem; }
.pj-summary { border: 1px solid #dfe2e2; border-radius: 6px; background: #f6f7f6; padding: 1.6rem; position: sticky; top: 1.5rem; }
.pj-summary h2 { font: italic 600 1.85rem/1.1 'Cormorant Garamond', Georgia, serif; margin: 0 0 1rem; }
.pj-price { padding-bottom: 1.25rem; margin-bottom: 1.25rem; border-bottom: 1px solid #d9dede; }
.pj-price-label { display: block; color: #626c71; font-size: .74rem; margin-bottom: .4rem; }
.pj-price-value { display: block; color: #302D2D; font-size: 1.85rem; font-weight: 600; letter-spacing: -.5px; line-height: 1.3; }
.pj-facts { margin: 0 0 1.25rem; }
.pj-facts div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e1e4e4; padding: .7rem 0; font-size: .79rem; }
.pj-facts dt { color: #626c71; font-weight: 400; }
.pj-facts dd { margin: 0; color: #302D2D; font-weight: 600; text-align: right; }
.pj-specs { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0 0 1.5rem; list-style: none; }
.pj-specs li { padding: .35rem .65rem; color: #4d5a63; border: 1px solid #d5dcdf; border-radius: 3px; background: #fff; font-size: .71rem; }
.pj-contact { display: flex; justify-content: center; text-align: center; align-items: center; background: #FFDE5B; color: #302D2D; padding: .95rem .7rem; min-height: 50px; font-size: .8rem; font-weight: 600; text-decoration: none; border-radius: 3px; }
.pj-contact:hover { background: #f2d04e; color: #302D2D; }
.pj-call { display: block; color: #366BB2; text-align: center; padding: 1rem 0 .4rem; font-size: .85rem; text-underline-offset: 5px; }
.pj-contact-note { color: #626c71; font-size: .73rem; line-height: 1.8; text-align: center; margin: .65rem 0 0; }
.pj-description { margin-top: 2.5rem; max-width: 740px; }
.pj-description h2 { font: italic 600 2.25rem 'Cormorant Garamond', Georgia, serif; margin: 0 0 1rem; }
.pj-description p { color: #556169; font-size: .92rem; line-height: 1.9; margin-bottom: 1rem; }
.pj-reference { font-size: .72rem !important; color: #6e777b !important; }
.pj-local-link { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid #dfe3e4; }
.pj-local-link a { color: #366BB2; text-underline-offset: 4px; }
.pj-related { background: #e7e6e5; padding: 4.5rem 0; }
.pj-service-links { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; margin-top: 1.5rem; }
.pj-service-links a { color: #366BB2; font-size: .82rem; text-underline-offset: 5px; }
.pj-page :is(a,button):focus-visible { outline: 3px solid #366BB2; outline-offset: 4px; }
.pj-lb { position: fixed; inset: 0; width: 100%; height: 100dvh; max-width: none; max-height: none; margin: 0; border: 0; padding: 4.5rem 4rem; background: rgba(25,25,25,.97); color: #fff; overflow: hidden; }
.pj-lb:not([open]) { display: none; }
.pj-lb[open] { display: flex; align-items: center; justify-content: center; }
.pj-lb::backdrop { background: rgba(0,0,0,.7); }
.pj-lb-stage { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 0; }
.pj-lb-stage img, .pj-lb-stage video { max-width: 100%; max-height: 100%; object-fit: contain; }
.pj-lb-close, .pj-lb-nav { position: absolute; background: #494949; border: 1px solid #777; color: #fff; width: 46px; height: 46px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; }
.pj-lb-close { top: 1rem; right: 1rem; }
.pj-lb-nav.prev { left: .75rem; top: 50%; }
.pj-lb-nav.next { right: .75rem; top: 50%; }
.pj-lb-count { position: absolute; bottom: 1.2rem; left: 1rem; right: 1rem; text-align: center; font-size: .78rem; color: #ddd; }
.pj-lb :focus-visible { outline: 3px solid #FFDE5B; outline-offset: 3px; }
@media (max-width: 991px) {
  .pj-layout { grid-template-columns: minmax(0, 1fr) 285px; gap: 1.25rem; }
  .pj-summary { padding: 1.2rem; }
  .pj-price-value { font-size: 1.55rem; }
  .pj-gallery-main { aspect-ratio: 1; }
}
@media (max-width: 767px) {
  .pj-intro { padding: 1.4rem 0; }
  .pj-intro .wan-breadcrumb { margin-bottom: 1.3rem; }
  .pj-heading-row { display: block; }
  .pj-heading-row h1 { font-size: clamp(2.5rem, 10vw, 3.5rem); }
  .pj-badges { margin-top: 1rem; }
  .pj-layout { display: flex; flex-direction: column; padding-bottom: 3rem; }
  .pj-gallery, .pj-summary { width: 100%; }
  .pj-summary { position: static; padding: 1.3rem; }
  .pj-gallery-main { aspect-ratio: 4/3; }
  .pj-gallery-caption { right: .65rem; bottom: .65rem; font-size: .67rem; padding: .55rem; }
  .pj-thumb { flex-basis: 95px; height: 72px; }
  .pj-description { margin-top: 1.75rem; }
  .pj-description h2 { font-size: 1.9rem; }
  .pj-related { padding: 3rem 0; }
  .pj-lb { padding: 4.5rem .4rem; }
  .pj-lb-nav { width: 42px; height: 42px; top: auto !important; bottom: .5rem; }
  .pj-lb-count { bottom: 1.1rem; left: 3.5rem; right: 3.5rem; font-size: .68rem; }
}
