:root {
  --jdpc-black: #0c0b09;
  --jdpc-black-soft: #171411;
  --jdpc-ivory: #f7f2e9;
  --jdpc-ivory-soft: #fbf8f3;
  --jdpc-ink: #1c1a17;
  --jdpc-muted: #6d6559;
  --jdpc-gold: #d7bf8f;
  --jdpc-gold-soft: #ecd9b5;
  --jdpc-blush: #dfc4bd;
  --jdpc-sage: #9aa38e;
  --jdpc-line: rgba(28, 26, 23, .12);
  --jdpc-line-dark: rgba(247, 242, 233, .12);
  --jdpc-shadow: 0 24px 70px rgba(9, 8, 7, .14);
  --jdpc-radius: 28px;
  --jdpc-radius-sm: 18px;
  --jdpc-container: 1180px;
  --jdpc-font-title: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --jdpc-font-body: 'Montserrat', Arial, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --jdpc-font-ui: 'Montserrat', Arial, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}


* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at top right, rgba(223,196,189,.08), transparent 22%),
    linear-gradient(180deg, #f9f6f1, var(--jdpc-ivory));
  color: var(--jdpc-ink);
  font-family: var(--jdpc-font-body);
  line-height: 1.68;
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration-thickness: .07em; text-underline-offset: .18em; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }

.jdpc-skip-link {
  position: absolute;
  left: -999px;
  top: 16px;
  z-index: 100;
  background: var(--jdpc-ivory);
  color: var(--jdpc-black);
  padding: 12px 16px;
  border-radius: 999px;
}
.jdpc-skip-link:focus { left: 16px; }

.jdpc-container {
  width: min(calc(100% - 40px), var(--jdpc-container));
  margin-inline: auto;
}

.jdpc-header {
  position: sticky;
  top: 0;
  z-index: 40;
  color: var(--jdpc-ivory);
  background: rgba(7, 6, 5, .92);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--jdpc-line-dark);
  transition: background .2s ease, box-shadow .2s ease;
}
.jdpc-header.is-scrolled { box-shadow: 0 8px 30px rgba(0,0,0,.22); background: rgba(7, 6, 5, .98); }
.jdpc-header__inner {
  width: min(calc(100% - 40px), 1280px);
  min-height: 98px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.jdpc-brand { flex: 0 0 auto; min-width: 0; }
.jdpc-brand__link,
.custom-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 1;
  background: transparent;
  border-radius: 0;
}
.custom-logo-link img,
.jdpc-brand__image {
  max-height: 76px;
  width: auto;
  filter: drop-shadow(0 10px 22px rgba(0, 0, 0, .22));
}
.jdpc-brand-image--primary { max-width: min(42vw, 560px); }

.jdpc-nav { margin-left: auto; }
.jdpc-menu { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.jdpc-menu li { position: relative; list-style: none; }
.jdpc-menu .sub-menu,
.jdpc-menu .children {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 60;
  min-width: 230px;
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 8px;
  list-style: none;
  background: rgba(7, 6, 5, .98);
  border: 1px solid rgba(247, 242, 233, .14);
  border-radius: 18px;
  box-shadow: 0 22px 46px rgba(0, 0, 0, .28);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.jdpc-menu > li:hover > .sub-menu,
.jdpc-menu > li:focus-within > .sub-menu,
.jdpc-menu > li:hover > .children,
.jdpc-menu > li:focus-within > .children,
.jdpc-menu li.is-submenu-open > .sub-menu,
.jdpc-menu li.is-submenu-open > .children {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.jdpc-menu .sub-menu a,
.jdpc-menu .children a {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  border-radius: 12px;
  white-space: nowrap;
}
.jdpc-menu .menu-item-has-children > a::after,
.jdpc-menu .page_item_has_children > a::after {
  content: "⌄";
  margin-left: .45em;
  font-size: .78em;
  opacity: .72;
}
.jdpc-submenu-toggle { display: none; }
.jdpc-menu a {
  display: inline-flex;
  padding: 12px 13px;
  border-radius: 999px;
  color: rgba(247,242,233,.86);
  text-decoration: none;
  font-family: var(--jdpc-font-ui);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .045em;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}
.jdpc-menu a:hover,
.jdpc-menu .current-menu-item > a,
.jdpc-menu .current_page_item > a { background: rgba(247,242,233,.1); color: var(--jdpc-ivory); }
.jdpc-menu-toggle { display: none; }

.jdpc-main { min-height: 60vh; }
.jdpc-hero {
  position: relative;
  isolation: isolate;
  min-height: calc(92vh - 84px);
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--jdpc-black);
  color: var(--jdpc-ivory);
}
.jdpc-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(120deg, rgba(12,11,9,.96) 4%, rgba(12,11,9,.72) 40%, rgba(12,11,9,.52) 62%, rgba(12,11,9,.86) 100%),
    var(--jdpc-hero-image) center center / cover no-repeat;
  transform: scale(1.02);
}
.jdpc-hero::before {
  content: "";
  position: absolute;
  right: -6%;
  bottom: 5%;
  width: min(34vw, 380px);
  aspect-ratio: 1;
  background: url('../img/branding/monogram.png') center / contain no-repeat;
  opacity: .09;
  filter: grayscale(1) brightness(1.5);
  z-index: -1;
}
.jdpc-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 35%;
  background: linear-gradient(transparent, rgba(12,11,9,.14), var(--jdpc-ivory));
  z-index: -1;
}
.jdpc-hero__content { padding: 118px 0 168px; max-width: 780px; }
.jdpc-eyebrow {
  margin: 0 0 16px;
  color: var(--jdpc-gold);
  text-transform: uppercase;
  letter-spacing: .24em;
  font-family: var(--jdpc-font-ui);
  font-weight: 700;
  font-size: .72rem;
}
h1, h2, h3 {
  font-family: var(--jdpc-font-title);
  line-height: .98;
  font-weight: 600;
  letter-spacing: -.025em;
}
h1 { margin: 0; font-size: clamp(3rem, 8vw, 6.4rem); }
h2 { margin: 0 0 18px; font-size: clamp(2rem, 4vw, 3.8rem); }
h3 { font-size: clamp(1.5rem, 2vw, 2rem); }
.jdpc-hero p:not(.jdpc-eyebrow) { max-width: 680px; margin: 24px 0 0; color: rgba(247,242,233,.84); font-size: clamp(1.05rem, 1.8vw, 1.35rem); }
.jdpc-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.jdpc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid currentColor;
  border-radius: 999px;
  text-decoration: none;
  font-family: var(--jdpc-font-ui);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.jdpc-button:hover { transform: translateY(-2px); }
.jdpc-button--primary { background: var(--jdpc-ivory); color: var(--jdpc-black); border-color: var(--jdpc-ivory); }
.jdpc-button--ghost { color: var(--jdpc-ivory); border-color: rgba(247,242,233,.55); }
.jdpc-prose .jdpc-button--primary { background: var(--jdpc-black); color: var(--jdpc-ivory); border-color: var(--jdpc-black); }

.jdpc-section { padding: clamp(56px, 8vw, 112px) 0; }
.jdpc-section__head { max-width: 760px; margin-bottom: 34px; }
.jdpc-section__head p:not(.jdpc-eyebrow) { color: var(--jdpc-muted); font-size: 1.03rem; max-width: 700px; }

.jdpc-home-intro {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 34px;
  align-items: center;
}
.jdpc-home-intro__text p:not(.jdpc-eyebrow) { color: #473f36; }
.jdpc-home-intro__art img {
  width: 100%;
  border-radius: calc(var(--jdpc-radius) + 6px);
  box-shadow: var(--jdpc-shadow);
  border: 1px solid rgba(28,26,23,.08);
}

.jdpc-divider {
  width: min(calc(100% - 40px), 1080px);
  margin: 0 auto;
}
.jdpc-divider img {
  width: 100%;
  height: auto;
  border-radius: 14px;
  opacity: .95;
}
.jdpc-divider--section { margin-top: 10px; margin-bottom: 10px; }
.jdpc-divider--page { margin-top: 44px; margin-bottom: 24px; width: min(calc(100% - 40px), 980px); }

.jdpc-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.jdpc-service-card {
  position: relative;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 28px;
  color: var(--jdpc-ivory);
  background:
    linear-gradient(180deg, rgba(12,11,9,.10), rgba(12,11,9,.80) 60%, rgba(12,11,9,.96) 100%),
    var(--jdpc-card-image) center / cover no-repeat,
    var(--jdpc-black-soft);
  border-radius: var(--jdpc-radius);
  text-decoration: none;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.jdpc-service-card::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 68px;
  height: 68px;
  background: url('../img/branding/monogram.png') center / contain no-repeat;
  opacity: .13;
}
.jdpc-service-card:hover { transform: translateY(-4px); box-shadow: var(--jdpc-shadow); }
.jdpc-service-card span { color: var(--jdpc-gold-soft); text-transform: uppercase; letter-spacing: .18em; font-size: .76rem; font-weight: 800; position: relative; z-index: 1; }
.jdpc-service-card strong { display: block; margin-top: 16px; font-family: var(--jdpc-font-title); font-size: 1.7rem; line-height: 1.18; font-weight: 500; position: relative; z-index: 1; }

.jdpc-cta-band {
  position: relative;
  overflow: hidden;
  margin-bottom: clamp(54px, 7vw, 96px);
  padding: clamp(34px, 5vw, 58px);
  border-radius: calc(var(--jdpc-radius) + 10px);
  background:
    linear-gradient(140deg, rgba(12,11,9,.92), rgba(12,11,9,.84)),
    var(--jdpc-band-image) center / cover no-repeat,
    var(--jdpc-black);
  color: var(--jdpc-ivory);
  text-align: center;
}
.jdpc-cta-band::before {
  content: "";
  position: absolute;
  inset: auto -80px -80px auto;
  width: 260px;
  height: 260px;
  background: url('../img/branding/monogram.png') center / contain no-repeat;
  opacity: .08;
}
.jdpc-cta-band p { max-width: 700px; margin: 0 auto 22px; color: rgba(247,242,233,.76); }
.jdpc-cta-band .jdpc-eyebrow { color: var(--jdpc-gold-soft); }
.jdpc-cta-band .jdpc-button { margin-top: 8px; }

.jdpc-page-banner {
  position: relative;
  overflow: hidden;
  color: var(--jdpc-ivory);
  background: var(--jdpc-black);
}
.jdpc-page-banner__media {
  position: absolute;
  inset: 0;
  background: var(--jdpc-page-banner) center center / cover no-repeat;
  filter: saturate(.92);
  transform: scale(1.02);
}
.jdpc-page-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(12,11,9,.93) 0%, rgba(12,11,9,.78) 42%, rgba(12,11,9,.42) 70%, rgba(12,11,9,.86) 100%);
}
.jdpc-page-banner__inner {
  position: relative;
  z-index: 1;
  min-height: 430px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 106px 0 86px;
  max-width: 780px;
}
.jdpc-page-banner__lead {
  max-width: 680px;
  margin: 18px 0 0;
  color: rgba(247,242,233,.84);
  font-size: clamp(1rem, 1.7vw, 1.2rem);
}
.jdpc-page-content { padding-bottom: clamp(64px, 8vw, 120px); }
.jdpc-prose { font-size: 1.01rem; letter-spacing: .005em; }
.jdpc-prose > * { max-width: 820px; }
.jdpc-prose > .alignwide,
.jdpc-prose > .wp-block-gallery,
.jdpc-prose > .jdpg-gallery,
.jdpc-prose > .jdpg-empty,
.jdpc-prose > .jdpg-slider,
.jdpc-prose > .jdpg-contact { max-width: none; }
.jdpc-prose p, .jdpc-prose li { color: #423c33; }
.jdpc-prose a { color: var(--jdpc-black); }
.jdpc-prose hr {
  border: 0;
  height: 48px;
  margin: 42px 0;
  background: url('../img/branding/divider-ornament.png') center / contain no-repeat;
}
.jdpc-prose img { border-radius: var(--jdpc-radius-sm); }
.jdpc-featured-image img { width: 100%; max-height: 680px; object-fit: cover; border-radius: var(--jdpc-radius); }

.jdpc-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding-bottom: 100px; }
.jdpc-post-card a { display: block; text-decoration: none; padding: 14px; border: 1px solid var(--jdpc-line); border-radius: var(--jdpc-radius); background: rgba(255,255,255,.42); }
.jdpc-post-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 16px; margin-bottom: 16px; }
.jdpc-post-card span { color: var(--jdpc-muted); font-size: .85rem; }
.jdpc-post-card h2 { font-size: 1.5rem; margin: 8px 0; }
.jdpc-post-card p { color: var(--jdpc-muted); }

.jdpc-footer {
  position: relative;
  overflow: hidden;
  background: var(--jdpc-black);
  color: var(--jdpc-ivory);
  padding: 54px 0 28px;
}
.jdpc-footer__glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 10% 10%, rgba(223,196,189,.12), transparent 24%),
    radial-gradient(circle at 82% 70%, rgba(154,163,142,.10), transparent 18%);
  pointer-events: none;
}
.jdpc-footer::after {
  content: "";
  position: absolute;
  right: -40px;
  bottom: -40px;
  width: 280px;
  height: 280px;
  background: url('../img/branding/monogram.png') center / contain no-repeat;
  opacity: .08;
  filter: grayscale(1) brightness(1.4);
}
.jdpc-footer__inner {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 40px), var(--jdpc-container));
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  gap: 34px;
  border-top: 1px solid var(--jdpc-line-dark);
  padding-top: 34px;
}
.jdpc-footer__left { max-width: 520px; }
.jdpc-footer__logo-wrap { margin-bottom: 18px; }
.jdpc-footer__logo { max-width: 160px; border-radius: 14px; }
.jdpc-footer__brand { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.5rem; }
.jdpc-footer__baseline { margin: 10px 0 0; color: rgba(247,242,233,.64); max-width: 430px; }
.jdpc-footer__right { display: flex; flex-direction: column; align-items: flex-end; gap: 16px; }
.jdpc-socials, .jdpc-footer-menu { display: flex; flex-wrap: wrap; gap: 14px; }
.jdpc-socials a, .jdpc-footer-menu a { color: rgba(247,242,233,.72); text-decoration: none; }
.jdpc-socials a:hover, .jdpc-footer-menu a:hover { color: var(--jdpc-ivory); }
.jdpc-footer__copy { position: relative; z-index: 1; width: min(calc(100% - 40px), var(--jdpc-container)); margin: 34px auto 0; color: rgba(247,242,233,.45); font-size: .9rem; }

@media (max-width: 980px) {
  .jdpc-menu-toggle {
    display: inline-flex;
    position: relative;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1px solid var(--jdpc-line-dark);
    border-radius: 999px;
    background: transparent;
    color: var(--jdpc-ivory);
    cursor: pointer;
  }
  .jdpc-menu-toggle span { font-size: 0; }
  .jdpc-menu-toggle::before,
  .jdpc-menu-toggle::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 2px;
    background: currentColor;
    transition: transform .18s ease;
  }
  .jdpc-menu-toggle::before { transform: translateY(-5px); }
  .jdpc-menu-toggle::after { transform: translateY(5px); }
  .jdpc-menu-toggle[aria-expanded="true"]::before { transform: rotate(45deg); }
  .jdpc-menu-toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }
  .jdpc-nav {
    position: fixed;
    inset: 88px 0 auto;
    display: none;
    background: rgba(12,11,9,.98);
    border-bottom: 1px solid var(--jdpc-line-dark);
    padding: 18px 20px 28px;
  }
  .jdpc-nav.is-open { display: block; }
  .jdpc-menu { flex-direction: column; align-items: stretch; width: min(100%, 520px); margin-inline: auto; }
  .jdpc-menu li { width: 100%; }
  .jdpc-menu a { justify-content: center; padding: 14px; font-size: 1rem; }
  .jdpc-menu .sub-menu,
  .jdpc-menu .children {
    position: static;
    display: none;
    min-width: 0;
    width: 100%;
    margin: 2px 0 10px;
    padding: 8px;
    background: rgba(247, 242, 233, .06);
    border-radius: 16px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .jdpc-menu li.is-submenu-open > .sub-menu,
  .jdpc-menu li.is-submenu-open > .children { display: grid; }
  .jdpc-menu .sub-menu a,
  .jdpc-menu .children a { justify-content: center; white-space: normal; }
  .jdpc-menu .menu-item-has-children > a::after,
  .jdpc-menu .page_item_has_children > a::after { content: none; }
  .jdpc-submenu-toggle {
    display: inline-flex;
    position: absolute;
    right: 8px;
    top: 7px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(247, 242, 233, .18);
    border-radius: 999px;
    background: rgba(247, 242, 233, .06);
    color: var(--jdpc-ivory);
    cursor: pointer;
  }
  .jdpc-submenu-toggle::before { content: "+"; font-weight: 900; }
  .jdpc-submenu-toggle[aria-expanded="true"]::before { content: "−"; }
  .jdpc-home-intro,
  .jdpc-services,
  .jdpc-post-grid { grid-template-columns: 1fr; }
  .jdpc-service-card { min-height: 260px; }
  .jdpc-footer__inner { flex-direction: column; }
  .jdpc-footer__right { align-items: flex-start; }
}

@media (max-width: 640px) {
  .jdpc-container,
  .jdpc-header__inner,
  .jdpc-footer__inner,
  .jdpc-footer__copy,
  .jdpc-divider { width: min(calc(100% - 28px), var(--jdpc-container)); }
  .jdpc-header__inner { min-height: 78px; }
  .jdpc-nav { inset: 78px 0 auto; }
  .jdpc-brand__image,
  .custom-logo-link img { max-height: 54px; }
  .jdpc-brand-image--primary { max-width: min(64vw, 320px); }
  .jdpc-hero { min-height: 680px; }
  .jdpc-hero__content { padding: 78px 0 118px; }
  .jdpc-actions { flex-direction: column; align-items: stretch; }
  .jdpc-button { width: 100%; }
  .jdpc-page-banner__inner { min-height: 350px; padding: 78px 0 58px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

.jdpg-archive-list {
  display: grid;
  gap: 14px;
  padding: 0;
  margin: 28px 0 36px;
  list-style: none;
}
.jdpg-archive-list li {
  display: grid;
  gap: 4px;
  padding: 18px 20px;
  border: 1px solid rgba(28, 26, 23, .12);
  border-radius: 18px;
  background: rgba(255,255,255,.42);
}
.jdpg-archive-list a {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.22rem;
  text-decoration: none;
}
.jdpg-archive-list span {
  color: var(--jdpc-muted);
  font-size: .95rem;
}

.jdpc-pagination {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 4rem;
}

.jdpc-pagination a {
    color: var(--jdpc-ivory);
    border-bottom: 1px solid rgba(198, 168, 107, .65);
}


@media (min-width: 981px) and (max-width: 1120px) {
  .jdpc-brand__image,
  .custom-logo-link img { max-height: 66px; }
  .jdpc-brand-image--primary { max-width: min(36vw, 440px); }
  .jdpc-menu a { padding-inline: 10px; font-size: .88rem; }
}

/* V12.3 — finitions menu/logo/galeries */
.jdpc-prose > .jdpg-gallery,
.jdpc-prose > .jdpg-url-gallery-wrap { margin-left: auto; margin-right: auto; }
.jdpc-prose .jdpg-gallery { width: 100%; }
.jdpc-prose .jdpg-gallery--grid { justify-items: center; }
.jdpc-prose .jdpg-gallery--grid .jdpg-item { width: 100%; }
.jdpc-prose .jdpg-item img { margin-inline: auto; object-position: center center; }


/* V12.4 — typographie premium proche du site bien-être */
.jdpc-hero h1,
.jdpc-page-banner h1 {
  max-width: 920px;
  text-wrap: balance;
}

.jdpc-hero p:not(.jdpc-eyebrow),
.jdpc-page-banner__lead {
  font-family: var(--jdpc-font-body);
  font-weight: 400;
  letter-spacing: .01em;
}

.jdpc-section__head h2,
.jdpc-prose h2,
.jdpc-prose h3 {
  text-wrap: balance;
}

.jdpc-brand__image {
  transition: transform .18s ease, filter .18s ease;
}
.jdpc-brand__link:hover .jdpc-brand__image {
  transform: translateY(-1px);
}

.jdpc-footer,
.jdpc-footer a,
.jdpc-form,
.jdpc-form input,
.jdpc-form textarea,
.jdpc-form select {
  font-family: var(--jdpc-font-body);
}

.jdpc-footer strong,
.jdpc-footer h2,
.jdpc-footer h3 {
  font-family: var(--jdpc-font-title);
}

@media (max-width: 700px) {
  h1 { font-size: clamp(2.75rem, 15vw, 4.2rem); }
  h2 { font-size: clamp(2rem, 10vw, 3.2rem); }
  .jdpc-menu a {
    font-size: .82rem;
    letter-spacing: .035em;
  }
}


/* V12.5 — Dark premium refinement.
   Global site stays very dark; visual category banners are displayed as complete images, not cropped. */
:root {
  --jdpc-page-dark: #070605;
  --jdpc-page-dark-2: #100e0b;
  --jdpc-text-light: rgba(247, 242, 233, .92);
  --jdpc-text-soft: rgba(247, 242, 233, .68);
  --jdpc-text-muted-dark: rgba(247, 242, 233, .52);
  --jdpc-line-on-dark: rgba(247, 242, 233, .12);
}

body {
  background:
    radial-gradient(circle at 12% 0%, rgba(198, 168, 107, .10), transparent 27%),
    radial-gradient(circle at 88% 14%, rgba(223, 196, 189, .07), transparent 26%),
    linear-gradient(180deg, #070605 0%, #0d0b09 46%, #060504 100%);
  color: var(--jdpc-text-light);
}

.jdpc-main,
.jdpc-page,
.jdpc-section,
.jdpc-page-content {
  background: transparent;
  color: var(--jdpc-text-light);
}

.jdpc-section__head p:not(.jdpc-eyebrow),
.jdpc-prose p,
.jdpc-prose li,
.jdpc-post-card p,
.jdpc-home-intro__text p:not(.jdpc-eyebrow),
.jdpc-load-more__count {
  color: var(--jdpc-text-soft);
}

.jdpc-prose a,
.jdpc-section a:not(.jdpc-button) {
  color: var(--jdpc-gold-soft);
}

.jdpc-prose h1,
.jdpc-prose h2,
.jdpc-prose h3,
.jdpc-section__head h2,
.jdpc-post-card h2 {
  color: var(--jdpc-ivory);
}

.jdpc-header {
  background: rgba(5, 4, 3, .94);
}
.jdpc-header.is-scrolled {
  background: rgba(5, 4, 3, .985);
}

.jdpc-visual-hero,
.jdpc-page-visual-banner {
  padding-top: clamp(28px, 5vw, 62px);
}

.jdpc-visual-hero img,
.jdpc-page-visual-banner img {
  width: 100%;
  max-height: min(76vh, 760px);
  object-fit: contain;
  object-position: center center;
  border-radius: clamp(18px, 3vw, 34px);
  border: 1px solid rgba(247, 242, 233, .10);
  background: linear-gradient(135deg, rgba(255, 255, 255, .025), rgba(255, 255, 255, .005));
  box-shadow: 0 26px 80px rgba(0, 0, 0, .42);
}

.jdpc-home-gallery,
.jdpc-page-content--after-visual {
  padding-top: clamp(28px, 4vw, 54px);
}

.jdpc-home-gallery .jdpg-url-gallery-wrap,
.jdpc-page-content--after-visual .jdpg-url-gallery-wrap {
  margin-top: 0;
}

.jdpc-home-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  padding: 0 0 clamp(70px, 9vw, 120px);
}
.jdpc-home-cta .jdpc-button--ghost {
  color: var(--jdpc-ivory);
  border-color: rgba(247, 242, 233, .36);
}

.jdpc-button--primary {
  background: var(--jdpc-ivory);
  color: var(--jdpc-black);
  border-color: var(--jdpc-ivory);
}
.jdpc-prose .jdpc-button--primary {
  background: var(--jdpc-ivory);
  color: var(--jdpc-black);
  border-color: var(--jdpc-ivory);
}
.jdpc-button--ghost:hover,
.jdpc-home-cta .jdpc-button--ghost:hover {
  background: rgba(247, 242, 233, .08);
}

.jdpc-divider img,
.jdpc-home-intro__art img,
.jdpc-featured-image img,
.jdpc-prose img {
  border-color: rgba(247, 242, 233, .10);
  box-shadow: 0 22px 64px rgba(0, 0, 0, .28);
}

.jdpc-page-banner__media {
  background: var(--jdpc-page-banner) center center / contain no-repeat;
}
.jdpc-page-banner__overlay {
  background: linear-gradient(120deg, rgba(7,6,5,.88), rgba(7,6,5,.70));
}
.jdpc-page-banner::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 28%;
  background: linear-gradient(transparent, var(--jdpc-page-dark));
}

.jdpc-post-card a {
  border-color: var(--jdpc-line-on-dark);
  background: rgba(255,255,255,.035);
}
.jdpc-post-card span { color: var(--jdpc-text-muted-dark); }

.jdpc-form,
.jdpg-contact,
.jdpc-prose form {
  color: var(--jdpc-text-light);
}
input,
textarea,
select {
  color: var(--jdpc-ivory);
  background: rgba(255,255,255,.045);
  border-color: rgba(247,242,233,.16);
}
input::placeholder,
textarea::placeholder { color: rgba(247,242,233,.42); }

@media (max-width: 640px) {
  .jdpc-visual-hero,
  .jdpc-page-visual-banner { padding-top: 18px; }
  .jdpc-visual-hero img,
  .jdpc-page-visual-banner img { border-radius: 18px; max-height: none; }
  .jdpc-home-gallery,
  .jdpc-page-content--after-visual { padding-top: 24px; }
}


/* V12.6 — blush center integration: dark header/footer kept, pale pink content area and pale assets only in main content. */
:root {
  --jdpc-center-bg: #F7EFEE;
  --jdpc-center-bg-2: #FCF8F7;
  --jdpc-center-text: #241f1b;
  --jdpc-center-soft: #5f564e;
  --jdpc-center-line: rgba(36, 31, 27, .10);
  --jdpc-center-card: rgba(255, 255, 255, .72);
}

body {
  background: #060504;
  color: var(--jdpc-ivory);
}

.jdpc-main {
  background:
    radial-gradient(circle at top left, rgba(223,196,189,.30), transparent 26%),
    radial-gradient(circle at 88% 10%, rgba(154,163,142,.14), transparent 20%),
    linear-gradient(180deg, var(--jdpc-center-bg-2) 0%, var(--jdpc-center-bg) 100%);
  color: var(--jdpc-center-text);
}

.jdpc-main .jdpc-page,
.jdpc-main .jdpc-section,
.jdpc-main .jdpc-page-content,
.jdpc-main .jdpc-home-gallery,
.jdpc-main .jdpc-home-cta {
  color: var(--jdpc-center-text);
}

.jdpc-main h1, .jdpc-main h2, .jdpc-main h3,
.jdpc-main .jdpc-prose h1, .jdpc-main .jdpc-prose h2, .jdpc-main .jdpc-prose h3,
.jdpc-main .jdpc-section__head h2,
.jdpc-main .jdpc-post-card h2 {
  color: var(--jdpc-center-text);
}

.jdpc-main .jdpc-prose p,
.jdpc-main .jdpc-prose li,
.jdpc-main .jdpc-section__head p:not(.jdpc-eyebrow),
.jdpc-main .jdpc-home-intro__text p:not(.jdpc-eyebrow),
.jdpc-main .jdpc-post-card p,
.jdpc-main .jdpc-load-more__count {
  color: var(--jdpc-center-soft);
}

.jdpc-main .jdpc-prose a,
.jdpc-main .jdpc-section a:not(.jdpc-button) {
  color: #ab7f73;
}

.jdpc-main .jdpc-eyebrow { color: #c29a8c; }

.jdpc-visual-hero,
.jdpc-page-visual-banner {
  padding-top: clamp(28px, 5vw, 62px);
}

.jdpc-visual-hero img,
.jdpc-page-visual-banner img {
  background: transparent;
  border: 1px solid rgba(36,31,27,.08);
  box-shadow: 0 24px 70px rgba(74, 53, 47, .12);
}

.jdpc-home-gallery,
.jdpc-page-content--after-visual {
  padding-top: clamp(26px, 4vw, 46px);
}

.jdpc-page-banner {
  color: var(--jdpc-center-text);
  background: var(--jdpc-center-bg);
}
.jdpc-page-banner__overlay {
  background: linear-gradient(120deg, rgba(252,248,247,.94) 0%, rgba(247,239,238,.86) 58%, rgba(252,248,247,.95) 100%);
}
.jdpc-page-banner::after {
  background: linear-gradient(transparent, var(--jdpc-center-bg));
}
.jdpc-page-banner__lead { color: var(--jdpc-center-soft); }

.jdpc-home-cta .jdpc-button--primary,
.jdpc-prose .jdpc-button--primary {
  background: #171411;
  color: var(--jdpc-ivory);
  border-color: #171411;
}
.jdpc-home-cta .jdpc-button--ghost,
.jdpc-main .jdpc-button--ghost {
  color: var(--jdpc-center-text);
  border-color: rgba(36,31,27,.22);
}
.jdpc-main .jdpc-button--ghost:hover { background: rgba(36,31,27,.05); }

.jdpc-main .jdpc-divider img,
.jdpc-main .jdpc-home-intro__art img,
.jdpc-main .jdpc-featured-image img,
.jdpc-main .jdpc-prose img {
  border-color: rgba(36,31,27,.08);
  box-shadow: 0 18px 54px rgba(74,53,47,.10);
}

.jdpc-main .jdpc-post-card a,
.jdpc-main .jdpg-archive-list li {
  background: var(--jdpc-center-card);
  border-color: var(--jdpc-center-line);
}
.jdpc-main .jdpc-post-card span,
.jdpc-main .jdpg-archive-list span { color: #7a7169; }
.jdpc-main .jdpg-archive-list a { color: var(--jdpc-center-text); }

.jdpc-main input,
.jdpc-main textarea,
.jdpc-main select {
  color: var(--jdpc-center-text);
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(36,31,27,.12);
}
.jdpc-main input::placeholder,
.jdpc-main textarea::placeholder { color: rgba(36,31,27,.42); }

.jdpc-main .jdpc-pagination a { color: var(--jdpc-center-text); border-bottom-color: rgba(171,127,115,.55); }

@media (max-width: 640px) {
  .jdpc-main { background: linear-gradient(180deg, var(--jdpc-center-bg-2) 0%, var(--jdpc-center-bg) 100%); }
}

/* V12.7 — intégration finale des assets pastel entre header et footer. */
.jdpc-main {
  position: relative;
  background:
    radial-gradient(circle at 8% 0%, rgba(223, 196, 189, .32), transparent 24%),
    radial-gradient(circle at 95% 12%, rgba(154, 163, 142, .12), transparent 22%),
    linear-gradient(180deg, #FCF8F7 0%, #F7EFEE 40%, #F7EFEE 100%);
  color: #241f1b;
}

.jdpc-main::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,.32), transparent 18%, transparent 82%, rgba(255,255,255,.26));
  opacity: .7;
}

.jdpc-main > * { position: relative; }

.jdpc-visual-hero,
.jdpc-page-visual-banner {
  padding-top: clamp(30px, 5vw, 64px);
}

.jdpc-visual-hero img,
.jdpc-page-visual-banner img {
  display: block;
  width: 100%;
  object-fit: contain;
  object-position: center center;
  background: #F7EFEE;
  border: 1px solid rgba(36,31,27,.06);
  border-radius: clamp(20px, 2.8vw, 34px);
  box-shadow: 0 18px 55px rgba(92, 69, 62, .10);
}

.jdpc-visual-hero img { max-height: min(72vh, 760px); }
.jdpc-page-visual-banner img { max-height: min(64vh, 680px); }

.jdpc-home-gallery,
.jdpc-page-content--after-visual {
  padding-top: clamp(24px, 4vw, 48px);
}

.jdpc-home-gallery .jdpg-url-gallery-wrap,
.jdpc-page-content--after-visual .jdpg-url-gallery-wrap {
  margin-top: 0;
}

.jdpc-page-content {
  padding-top: clamp(38px, 5vw, 72px);
}

.jdpc-page-content--after-visual {
  padding-top: clamp(24px, 4vw, 48px);
}

.jdpc-main .jdpc-prose,
.jdpc-main .jdpc-prose p,
.jdpc-main .jdpc-prose li,
.jdpc-main .jdpg-url-gallery-wrap,
.jdpc-main .jdpg-load-more__count {
  color: #5f564e;
}

.jdpc-main h1,
.jdpc-main h2,
.jdpc-main h3,
.jdpc-main .jdpg-url-gallery__head h2 {
  color: #241f1b;
}

.jdpc-main .jdpc-eyebrow,
.jdpc-main .jdpg-url-gallery__count {
  color: #b8897c;
}

.jdpc-main .jdpg-gallery,
.jdpc-main .jdpg-url-gallery-wrap {
  color: #241f1b;
}

.jdpc-main .jdpg-item {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(36,31,27,.075);
  box-shadow: 0 14px 38px rgba(92, 69, 62, .12);
}

.jdpc-main .jdpg-gallery--url .jdpg-item,
.jdpc-main .jdpg-gallery--url .jdpg-item img {
  background: rgba(255,255,255,.72);
}

.jdpc-main .jdpg-gallery--url img[data-src] {
  background: linear-gradient(135deg, rgba(255,255,255,.68), rgba(247,239,238,.92));
}

.jdpc-main .jdpg-load-more__button {
  background: #171411;
  color: #f7f2e9;
  border-color: #171411;
}

.jdpc-main .jdpg-load-more__button:hover { background: #2a241f; }

.jdpc-main .jdpc-home-cta {
  padding-top: clamp(14px, 3vw, 30px);
}

.jdpc-main .jdpc-button--primary,
.jdpc-main .jdpc-home-cta .jdpc-button--primary {
  background: #171411;
  color: #f7f2e9;
  border-color: #171411;
}

.jdpc-main .jdpc-button--ghost,
.jdpc-main .jdpc-home-cta .jdpc-button--ghost {
  color: #241f1b;
  border-color: rgba(36,31,27,.24);
}

.jdpc-main .jdpc-button--ghost:hover,
.jdpc-main .jdpc-home-cta .jdpc-button--ghost:hover {
  background: rgba(36,31,27,.05);
}

.jdpc-main .jdpc-page-banner {
  color: #241f1b;
  background: #F7EFEE;
}

.jdpc-main .jdpc-page-banner__media {
  background: var(--jdpc-page-banner) center center / contain no-repeat;
  opacity: .42;
  filter: none;
}

.jdpc-main .jdpc-page-banner__overlay {
  background: linear-gradient(120deg, rgba(252,248,247,.96), rgba(247,239,238,.88) 58%, rgba(252,248,247,.96));
}

.jdpc-main .jdpc-page-banner::after {
  background: linear-gradient(transparent, #F7EFEE);
}

.jdpc-main .jdpc-page-banner__lead { color: #5f564e; }

.jdpc-main .jdpc-divider img {
  background: transparent;
  box-shadow: none;
  border: 0;
  opacity: .92;
}

.jdpc-main .jdpg-contact {
  background: rgba(255,255,255,.62);
  color: #241f1b;
  border: 1px solid rgba(36,31,27,.08);
  box-shadow: 0 18px 54px rgba(92,69,62,.10);
}

.jdpc-main .jdpg-contact label,
.jdpc-main .jdpg-contact__privacy-note { color: #5f564e; }

.jdpc-main .jdpg-contact input,
.jdpc-main .jdpg-contact textarea,
.jdpc-main .jdpg-contact select {
  background: rgba(255,255,255,.82);
  color: #241f1b;
  border-color: rgba(36,31,27,.13);
}

.jdpc-main .jdpg-contact__submit {
  background: #171411;
  color: #f7f2e9;
}

.jdpc-main .jdpg-contact__consent a { color: #8f665d; }

@media (max-width: 640px) {
  .jdpc-visual-hero,
  .jdpc-page-visual-banner { padding-top: 18px; }
  .jdpc-visual-hero img,
  .jdpc-page-visual-banner img { border-radius: 18px; max-height: none; }
}


/* V12.8 — center area more pink, no frame around the top visual image */
:root {
  --jdpc-center-bg: #F6E6EA;
  --jdpc-center-bg-2: #FCF1F4;
  --jdpc-center-soft: #665a57;
}

.jdpc-main {
  background:
    radial-gradient(circle at 8% 0%, rgba(223, 196, 189, .40), transparent 24%),
    radial-gradient(circle at 95% 12%, rgba(230, 189, 202, .22), transparent 22%),
    linear-gradient(180deg, var(--jdpc-center-bg-2) 0%, var(--jdpc-center-bg) 42%, var(--jdpc-center-bg) 100%);
}

.jdpc-visual-hero img,
.jdpc-page-visual-banner img {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.jdpc-main .jdpc-page-banner {
  background: var(--jdpc-center-bg);
}

.jdpc-main .jdpc-page-banner__overlay {
  background: linear-gradient(120deg, rgba(252,241,244,.96), rgba(246,230,234,.90) 58%, rgba(252,241,244,.96));
}

.jdpc-main .jdpc-page-banner::after {
  background: linear-gradient(transparent, var(--jdpc-center-bg));
}

.jdpc-main .jdpg-gallery--url img[data-src] {
  background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(246,230,234,.95));
}

@media (max-width: 640px) {
  .jdpc-visual-hero img,
  .jdpc-page-visual-banner img {
    border-radius: 0;
  }
}


/* V13.0 — premium public wedding selection */
.jdpc-wedding-editorial {
  padding: clamp(44px, 6vw, 82px) 0 clamp(76px, 9vw, 128px);
}

.jdpc-wedding-editorial__intro {
  max-width: 760px;
  margin: 0 auto clamp(28px, 4vw, 46px);
  text-align: center;
}

.jdpc-wedding-editorial__intro h1 {
  margin: 0;
  font-size: clamp(2.7rem, 6vw, 5.4rem);
  color: #241f1b;
}

.jdpc-wedding-editorial__intro p:not(.jdpc-eyebrow) {
  max-width: 580px;
  margin: 18px auto 0;
  color: #665a57;
  font-size: clamp(1rem, 1.4vw, 1.14rem);
}

.jdpc-wedding-editorial .jdpg-gallery {
  margin-top: 0;
  margin-bottom: clamp(28px, 4vw, 48px);
}

.jdpc-wedding-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

.jdpc-page-content .jdpc-wedding-actions {
  margin-top: clamp(24px, 4vw, 42px);
}

.jdpc-prose .jdpc-wedding-intro {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.jdpc-prose .jdpc-wedding-intro h2 {
  margin-bottom: 12px;
}

.jdpc-prose .jdpc-wedding-intro p {
  max-width: 620px;
  margin-inline: auto;
}

@media (max-width: 700px) {
  .jdpc-wedding-editorial {
    padding-top: 34px;
  }
  .jdpc-wedding-actions {
    align-items: stretch;
  }
}


/* V13.1 — finitions premium rose poudré + fond central plus rose */
:root {
  --jdpc-center-bg: #F6E3E8;
  --jdpc-center-bg-2: #FCF1F4;
  --jdpc-rose-accent: #E9C6D0;
  --jdpc-rose-accent-strong: #DFAFBD;
  --jdpc-rose-ink: #8F5967;
}

.jdpc-main {
  background:
    radial-gradient(circle at 8% 0%, rgba(223, 175, 189, .42), transparent 24%),
    radial-gradient(circle at 95% 12%, rgba(233, 198, 208, .30), transparent 22%),
    linear-gradient(180deg, var(--jdpc-center-bg-2) 0%, var(--jdpc-center-bg) 44%, #F8E8EC 100%);
}

.jdpc-menu a {
  position: relative;
  overflow: hidden;
}

.jdpc-menu a::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 7px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--jdpc-rose-accent), transparent);
  opacity: 0;
  transform: scaleX(.35);
  transition: opacity .2s ease, transform .2s ease;
}

.jdpc-menu a:hover,
.jdpc-menu a:focus-visible,
.jdpc-menu .current-menu-item > a,
.jdpc-menu .current_page_item > a {
  background: rgba(233, 198, 208, .12);
  color: var(--jdpc-ivory);
}

.jdpc-menu a:hover::before,
.jdpc-menu a:focus-visible::before,
.jdpc-menu .current-menu-item > a::before,
.jdpc-menu .current_page_item > a::before {
  opacity: .95;
  transform: scaleX(1);
}

.jdpc-menu .sub-menu,
.jdpc-menu .children {
  background: rgba(8, 6, 5, .985);
  border-color: rgba(233, 198, 208, .18);
}

.jdpc-menu .sub-menu a:hover,
.jdpc-menu .children a:hover,
.jdpc-menu .sub-menu a:focus-visible,
.jdpc-menu .children a:focus-visible {
  background: rgba(233, 198, 208, .14);
}

.jdpc-button,
.jdpg-load-more__button,
.jdpg-contact__submit {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16);
}

.jdpc-main .jdpc-button--primary,
.jdpc-main .jdpc-home-cta .jdpc-button--primary,
.jdpc-main .jdpg-load-more__button,
.jdpc-main .jdpg-contact__submit {
  background: linear-gradient(135deg, #171411 0%, #2A211F 100%);
  color: #FDF7F5;
  border-color: #171411;
}

.jdpc-main .jdpc-button--primary:hover,
.jdpc-main .jdpc-home-cta .jdpc-button--primary:hover,
.jdpc-main .jdpg-load-more__button:hover,
.jdpc-main .jdpg-contact__submit:hover {
  background: linear-gradient(135deg, #241B19 0%, #3A2A2D 100%);
  box-shadow: 0 14px 34px rgba(143, 89, 103, .18), inset 0 1px 0 rgba(255,255,255,.18);
}

.jdpc-main .jdpc-button--ghost,
.jdpc-main .jdpc-home-cta .jdpc-button--ghost {
  border-color: rgba(143, 89, 103, .34);
  color: #2B211F;
  background: rgba(255,255,255,.18);
}

.jdpc-main .jdpc-button--ghost:hover,
.jdpc-main .jdpc-home-cta .jdpc-button--ghost:hover {
  background: rgba(233, 198, 208, .30);
  border-color: rgba(143, 89, 103, .46);
  box-shadow: 0 12px 28px rgba(143, 89, 103, .10);
}

.jdpc-main .jdpg-item {
  border-color: rgba(143, 89, 103, .10);
  box-shadow: 0 14px 38px rgba(92, 69, 62, .10);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.jdpc-main .jdpg-item::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(233, 198, 208, .00), rgba(233, 198, 208, .15));
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
}

.jdpc-main .jdpg-item:hover {
  transform: translateY(-2px);
  border-color: rgba(143, 89, 103, .18);
  box-shadow: 0 20px 48px rgba(92, 69, 62, .14);
}

.jdpc-main .jdpg-item:hover::before { opacity: 1; }
.jdpc-main .jdpg-item:hover img { transform: scale(1.015); filter: saturate(1.015) contrast(1.01); }
.jdpc-main .jdpg-item::after,
.jdpc-main .jdpg-item__caption { z-index: 2; }

.jdpc-visual-hero img,
.jdpc-page-visual-banner img {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.jdpc-footer__inner {
  border-top-color: rgba(233, 198, 208, .18);
}

.jdpc-footer a:hover,
.jdpc-socials a:hover,
.jdpc-footer-menu a:hover {
  color: var(--jdpc-rose-accent);
}

@media (max-width: 980px) {
  .jdpc-menu a::before { left: 34%; right: 34%; bottom: 6px; }
}
