
.jpc-navigation a[aria-current="page"] {
  color:#b73c2a;
  text-decoration:underline;
  text-underline-offset:8px}

.jpc-inner {
  color:#292929}
.jpc-inner-banner {
  padding:30px 0 66px;
  background:#f5f3f0;
  border-bottom:1px solid #e7e2dc}
.jpc-breadcrumb {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:12px;
  margin-bottom:50px}
.jpc-breadcrumb a {
  color:inherit}
.jpc-eyebrow {
  font-size:11px!important;
  font-weight:700;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:#b73c2a;
  margin:0 0 18px}
.jpc-inner h1 {
  font-family:Georgia,serif;
  font-size:clamp(36px,5vw,62px);
  line-height:1.12;
  font-weight:400;
  max-width:900px;
  margin:0 0 24px}
.jpc-lead {
  max-width:790px;
  font-size:18px;
  line-height:1.85;
  margin:0}
.jpc-editorial {
  padding-top:66px;
  padding-bottom:66px}
.jpc-inner h2 {
  font-family:Georgia,serif;
  font-size:32px;
  line-height:1.25;
  font-weight:400;
  margin:0 0 20px}
.jpc-editorial p {
  line-height:1.9;
  font-size:15px;
  max-width:840px}
.jpc-split {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:60px}
.jpc-photo-panel img {
  display:block;
  width:100%;
  height:340px;
  object-fit:cover}
.jpc-soft {
  background:#f7f7f6}
.jpc-service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px 70px}
.jpc-number {
  display:block;
  font-size:13px;
  color:#b73c2a;
  letter-spacing:2px;
  margin-bottom:20px}
.jpc-service-grid h2 {
  font-size:27px}
.jpc-page-cta {
  margin-top:56px;
  padding:38px 42px;
  background:#b73c2a;
  color:white;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px}
.jpc-page-cta .jpc-eyebrow {
  color:white;
  opacity:.85}
.jpc-page-cta h2 {
  margin:0;
  font-size:30px}
.jpc-page-cta .jpc-button {
  background:white;
  color:#a83425;
  white-space:nowrap;
  border-color:white}
.jpc-gallery-note {
  padding:18px 22px;
  border-left:2px solid #b73c2a;
  background:#f5f3f0;
  font-size:13px!important;
  margin:0 0 48px}
.jpc-project-stories {
  display:grid;
  gap:64px}
.jpc-project-stories article {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:50px;
  align-items:center}
.jpc-project-stories article:nth-child(even) .jpc-story-photo {
  order:2}
.jpc-story-photo {
  aspect-ratio:233/146;
  overflow:hidden}
.jpc-story-photo .jpc-sprite {
  display:block;
  width:100%;
  height:100%}
.jpc-text-link {
  display:inline-block;
  color:#a83425;
  font-weight:600;
  font-size:13px;
  padding:12px 0;
  text-underline-offset:5px}
.jpc-timeline {
  list-style:none;
  padding:0;
  margin:0;
  max-width:890px}
.jpc-timeline li {
  position:relative;
  display:grid;
  grid-template-columns:70px 1fr;
  gap:35px;
  padding-bottom:50px}
.jpc-timeline li:last-child {
  padding-bottom:0}
.jpc-timeline li:not(:last-child):before {
  content:"";
  position:absolute;
  left:27px;
  top:55px;
  bottom:0;
  width:1px;
  background:#dfc2b9}
.jpc-timeline-number {
  width:55px;
  height:55px;
  display:grid;
  place-items:center;
  background:#b73c2a;
  color:white;
  border-radius:50%;
  font-family:Georgia,serif;
  font-size:26px}
.jpc-stage-note {
  padding:15px 20px;
  background:#f5f3f0;
  font-size:13px!important}
.jpc-about {
  display:grid;
  grid-template-columns:320px 1fr;
  gap:75px;
  align-items:center}
.jpc-about-logo {
  width:100%;
  aspect-ratio:1}
.jpc-about-logo .jpc-sprite {
  width:100%;
  height:100%;
  display:block;
  border-radius:50%}
.jpc-about h2:not(:first-child) {
  margin-top:35px}
.jpc-values {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px}
.jpc-values article {
  border-top:2px solid #b73c2a;
  padding-top:25px}
.jpc-values h2 {
  font-size:27px}
.jpc-contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:75px}
.jpc-contact-details {
  margin-top:35px}
.jpc-contact-details dt {
  font-weight:600;
  font-size:12px;
  margin-top:22px;
  text-transform:uppercase;
  letter-spacing:1px}
.jpc-contact-details dd {
  margin:10px 0 0;
  white-space:pre-line;
  line-height:1.8;
  font-size:15px;
  overflow-wrap:anywhere}
.jpc-contact-details a {
  color:inherit}
.jpc-contact-checklist {
  padding:35px;
  background:#f5f3f0}
.jpc-contact-checklist ul {
  padding-left:19px;
  line-height:1.9;
  font-size:15px}
.jpc-contact-checklist li {
  padding:7px 0}
.jpc-native-form input,.jpc-native-form textarea,.jpc-native-form select {
  max-width:100%;
  padding:12px;
  border:1px solid #bbb;
  font:inherit}
.jpc-native-form label {
  display:block;
  margin:15px 0 6px}
.jpc-native-form button,.jpc-native-form input[type=submit] {
  background:#b73c2a;
  color:white;
  padding:12px 24px;
  border:0}
.jpc-inner a:focus-visible {
  outline:3px solid #b73c2a;
  outline-offset:5px}

@media(max-width:850px) {
  .jpc-split,.jpc-project-stories article,.jpc-about,.jpc-contact-grid {
  gap:30px}
.jpc-about {
  grid-template-columns:230px 1fr}
.jpc-values {
  gap:25px}
.jpc-page-cta {
  padding:30px;
  align-items:flex-start;
  flex-direction:column}
.jpc-photo-panel img {
  height:300px}
}

@media(max-width:600px) {
  .jpc-inner-banner {
  padding:20px 0 40px}
.jpc-breadcrumb {
  margin-bottom:32px}
.jpc-lead {
  font-size:16px}
.jpc-editorial {
  padding-top:40px;
  padding-bottom:40px}
.jpc-inner h2 {
  font-size:27px}
.jpc-split,.jpc-service-grid,.jpc-project-stories article,.jpc-about,.jpc-values,.jpc-contact-grid {
  grid-template-columns:1fr}
.jpc-project-stories article:nth-child(even) .jpc-story-photo {
  order:0}
.jpc-project-stories {
  gap:42px}
.jpc-photo-panel img {
  height:240px}
.jpc-about-logo {
  max-width:250px;
  margin:auto}
.jpc-service-grid {
  gap:30px}
.jpc-timeline li {
  grid-template-columns:42px 1fr;
  gap:18px}
.jpc-timeline-number {
  width:40px;
  height:40px;
  font-size:21px}
.jpc-timeline li:not(:last-child):before {
  left:20px;
  top:40px}
.jpc-page-cta {
  padding:27px 24px;
  margin-top:36px}
.jpc-page-cta .jpc-button {
  white-space:normal}
.jpc-contact-checklist {
  padding:26px}
.jpc-stage-note {
  padding:12px}
.jpc-contact-grid {
  gap:35px}
}


/* Présentation compacte : accès plus rapide au contenu des pages. */
.jpc-inner-banner {
  padding:18px 0 28px}

.jpc-breadcrumb {
  margin-bottom:20px}

.jpc-inner-banner .jpc-eyebrow {
  display:none}

.jpc-inner h1 {
  font-size:clamp(28px,3vw,38px);
  line-height:1.2;
  margin-bottom:12px}

.jpc-lead {
  font-size:16px;
  line-height:1.65;
  max-width:850px}

.jpc-editorial {
  padding-top:36px;
  padding-bottom:36px}

.jpc-inner h2 {
  font-size:27px;
  margin-bottom:14px}

.jpc-editorial p {
  line-height:1.7}

.jpc-photo-panel img {
  height:250px}

.jpc-service-grid {
  gap:26px 50px}

.jpc-number {
  margin-bottom:12px}

.jpc-page-cta {
  margin-top:30px;
  padding:26px 32px}

.jpc-page-cta h2 {
  font-size:26px;
  margin:0}

.jpc-gallery-note {
  margin-bottom:28px;
  padding:12px 18px}

.jpc-project-stories {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px}

.jpc-project-stories article {
  display:block}

.jpc-project-stories .jpc-story-photo {
  margin-bottom:20px}

.jpc-project-stories h2 {
  font-size:25px}

.jpc-timeline li {
  padding-bottom:26px}

.jpc-stage-note {
  padding:10px 16px}

.jpc-about {
  grid-template-columns:240px 1fr;
  gap:50px}

.jpc-about h2:not(:first-child) {
  margin-top:24px}

.jpc-contact-checklist {
  padding:26px}

@media(max-width:600px) {
  
.jpc-inner-banner {
  padding:14px 0 22px}

.jpc-breadcrumb {
  margin-bottom:16px;
  font-size:11px}

.jpc-inner h1 {
  font-size:28px;
  margin-bottom:10px}

.jpc-editorial {
  padding-top:26px;
  padding-bottom:26px}

.jpc-inner h2 {
  font-size:24px}

.jpc-photo-panel img {
  height:190px}

.jpc-split,.jpc-contact-grid,.jpc-service-grid {
  gap:22px}

.jpc-project-stories {
  grid-template-columns:1fr;
  gap:28px}

.jpc-project-stories .jpc-story-photo {
  margin-bottom:16px}

.jpc-page-cta {
  margin-top:24px;
  padding:22px;
  gap:18px}

.jpc-about {
  grid-template-columns:1fr;
  gap:24px}

.jpc-about-logo {
  max-width:150px}

.jpc-contact-checklist {
  padding:22px}

}


/* Réalisations : cartes sobres et boutons alignés. */
.jpc-project-stories {
  align-items:stretch;
  gap:32px}

.jpc-project-stories article {
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e6e2de}

.jpc-project-stories article:nth-child(even) .jpc-story-photo {
  order:0}

.jpc-project-stories .jpc-story-photo {
  width:100%;
  margin:0;
  flex:none}

.jpc-project-stories article>div:last-child {
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  padding:24px}

.jpc-project-stories h2 {
  margin:0 0 12px;
  font-size:25px}

.jpc-project-stories article p {
  margin:0 0 22px}

.jpc-project-stories .jpc-project-button {
  margin-top:auto;
  background:transparent;
  color:#a83425;
  border:1px solid #b73c2a;
  padding:11px 17px;
  font-size:13px;
  text-decoration:none}

.jpc-project-stories .jpc-project-button:hover {
  background:#b73c2a;
  color:#fff}

@media(max-width:600px) {
  .jpc-project-stories {
  gap:24px}
.jpc-project-stories article>div:last-child {
  padding:20px}
.jpc-project-stories h2 {
  font-size:24px}
}


.jpc-project-stories article {
  gap:0;
  align-items:stretch}
.jpc-project-stories .jpc-project-button {
  color:#a83425!important}
.jpc-project-stories .jpc-project-button:hover {
  color:#fff!important}
.jpc-page-cta .jpc-button {
  color:#a83425!important}


/* Alignements communs aux pages intérieures. */
.jpc-inner .jpc-editorial p {
  margin-top:0;
  margin-bottom:16px}

.jpc-inner .jpc-editorial p:last-child {
  margin-bottom:0}

.jpc-inner .jpc-eyebrow {
  margin-top:0;
  margin-bottom:16px}

.jpc-split,.jpc-about,.jpc-contact-grid {
  align-items:start;
  gap:32px}

.jpc-service-grid {
  gap:28px 32px;
  align-items:start}

.jpc-service-grid article {
  border-top:1px solid #d8cec7;
  padding-top:20px;
  min-width:0}

.jpc-service-grid h2,.jpc-values h2 {
  font-size:25px;
  margin:0 0 12px}

.jpc-values {
  gap:32px;
  align-items:start}

.jpc-values article {
  padding-top:20px}

.jpc-about-logo {
  max-width:220px;
  margin:0 auto}

.jpc-about h2:not(:first-child) {
  margin-top:24px}

.jpc-contact-checklist .jpc-eyebrow {
  margin-bottom:12px}

.jpc-contact-checklist h2 {
  margin-top:0}

.jpc-project-stories article>div:last-child {
  min-width:0}

.jpc-inner .jpc-project-stories article p {
  margin-bottom:22px}

.jpc-inner .jpc-page-cta .jpc-eyebrow {
  margin-bottom:10px}

.jpc-timeline li>div {
  min-width:0}

.jpc-inner .jpc-timeline .jpc-eyebrow {
  margin:0 0 10px}

.jpc-inner .jpc-timeline h2 {
  margin:0 0 12px}

.jpc-inner .jpc-timeline .jpc-stage-note {
  margin:16px 0 0}

.jpc-page-cta .jpc-button {
  flex-shrink:0}

@media(min-width:601px) {
  .jpc-values h2 {
  min-height:2.5em}
}

@media(max-width:600px) {
  
.jpc-split,.jpc-about,.jpc-contact-grid,.jpc-values {
  gap:24px}

.jpc-service-grid {
  gap:24px}

.jpc-service-grid h2,.jpc-values h2 {
  font-size:24px}

.jpc-about-logo {
  max-width:150px}

}


/* Pied de page partagé, organisé en trois colonnes. */
.jpc-site .jpc-footer-full {
  padding:46px 0 0;
  background:#f5f3f0;
  border-top:1px solid #e5dfd8;
  color:#333}

.jpc-footer-full .jpc-footer-grid {
  display:grid;
  grid-template-columns:1.35fr .8fr 1fr;
  gap:64px;
  align-items:start}

.jpc-footer-full .jpc-brand {
  width:245px;
  max-width:100%;
  margin-bottom:18px}

.jpc-footer-full .jpc-footer-intro p {
  font-size:13px;
  line-height:1.8;
  max-width:310px;
  margin:0 0 20px}

.jpc-site .jpc-footer-full h2 {
  font:600 14px Montserrat,Arial,sans-serif;
  margin:0 0 22px;
  color:#292929}

.jpc-footer-full .jpc-footer-nav {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px}

.jpc-footer-full .jpc-footer-nav h2 {
  margin-bottom:10px}

.jpc-footer-full a {
  font-size:13px;
  line-height:1.6;
  text-decoration:none}

.jpc-footer-full a:hover {
  text-decoration:underline;
  text-underline-offset:4px;
  color:#a83425}

.jpc-footer-full .jpc-footer-cta {
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:10px 16px;
  border:1px solid #a83425;
  color:#a83425;
  font-weight:600}

.jpc-footer-full .jpc-footer-cta:hover {
  background:#a83425;
  color:white;
  text-decoration:none}

.jpc-site .jpc-footer-full address {
  display:block;
  font-size:13px;
  line-height:1.8;
  font-style:normal;
  white-space:pre-line;
  margin:0 0 18px}

.jpc-footer-full .jpc-footer-email {
  display:block;
  overflow-wrap:anywhere;
  margin-bottom:14px}

.jpc-footer-full .jpc-footer-contact-link {
  display:inline-block;
  color:#a83425;
  font-weight:600;
  margin-top:5px}

.jpc-footer-full .jpc-footer-phone {
  font-size:13px;
  margin:0 0 14px}

.jpc-footer-full .jpc-footer-bottom {
  margin-top:38px;
  padding:20px 0;
  border-top:1px solid #dcd6ce;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px}

.jpc-footer-full .jpc-footer-bottom p {
  font-size:11px;
  line-height:1.6;
  margin:0}

.jpc-footer-full .jpc-footer-bottom nav {
  display:flex;
  gap:24px;
  flex-wrap:wrap}

.jpc-footer-full .jpc-footer-bottom a {
  font-size:11px}

.jpc-footer-full a:focus-visible {
  outline:2px solid #a83425;
  outline-offset:5px}

@media(max-width:900px) {
  .jpc-footer-full .jpc-footer-grid {
  gap:30px;
  grid-template-columns:1.1fr .8fr 1fr}
.jpc-footer-full .jpc-footer-bottom {
  align-items:flex-start;
  flex-direction:column;
  gap:12px}
}

@media(max-width:640px) {
  .jpc-site .jpc-footer-full {
  padding-top:30px}
.jpc-footer-full .jpc-footer-grid {
  grid-template-columns:1fr;
  gap:28px}
.jpc-footer-full .jpc-footer-intro p {
  max-width:none}
.jpc-footer-full .jpc-footer-nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 20px}
.jpc-footer-full .jpc-footer-nav h2 {
  grid-column:1/-1;
  margin-bottom:4px}
.jpc-site .jpc-footer-full h2 {
  margin-bottom:16px}
.jpc-footer-full .jpc-footer-bottom {
  margin-top:26px}
.jpc-footer-full .jpc-footer-bottom nav {
  gap:12px 22px}
.jpc-footer-full .jpc-brand {
  width:230px}
}

